Python学习系列(四)(列表及其函数)
>>> li=[1,2,3,4,5]
>>> print li[2],li[0]
3 1
删除列表的项:
>>> del li[2]
>>> print li
[1, 2, 4, 5]
2)切片访问,语法结构:list_name[start_index,end_index,step]。例如:
>>> li=[1,2,3,4,5]
>>> print li[2:4]
[3, 4]
>>> li=[1,2,3,4,5]
>>> print li[2:4:2]
[3]
删除列表项:
>>> del li[2:4]
>>> print li
[1, 2, 5]
3,基本运算
>>> li=[1,2,3,4,5]
>>> li1=range(6,9)
>>> li2=li+li1
>>> print li2
[1, 2, 3, 4, 5, 6, 7, 8]
2)乘法:相当于同一个列表相加了n次。
>>> print li1*2
[6, 7, 8, 6, 7, 8]
3)(not)in运算:即包含与否的运算,判断某个值是否为列表的元素。
>>> print 2 in li
True
>>> print 10 in li2
False
>>> print 10 not in li2
True
4)遍历:逐一访问列表里的各个元素通过for循环来依次取出列表的各个元素项的值。
>>> li1=[1,2,3,4,5]
>>> li=li1*3
>>> i=0
>>> for val in li:
print 'li[%d]'%(i),val
i+=1
(空格,Enter键运行)
li[0] 1
li[1] 2
li[2] 3
li[3] 4
li[4] 5
li[5] 1
li[6] 2
li[7] 3
li[8] 4
li[9] 5
li[10] 1
li[11] 2
li[12] 3
li[13] 4
li[14] 5
列表的解析:[val_expr for val in list_name],其中:
val_expr:是变量val的运算表达式,val用于存储for每次从list_name列表取出的元素的值,用每一个val_expr的值作为构建新列表的元素项。
练习:用列表求1~9的立方。
>>> li=range(1,10)
>>> print li
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> li1=[x**3 for x in li] #列表的解析
>>> print li1
[1, 8, 27, 64, 125, 216, 343, 512, 729]
二、相关函数
>>> li=range(1,11)
>>> print li
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> print len(li)
10
2)count()函数:统计列表里某元素项出现的次数。
>>> li=range(1,3)
>>> li2=li*3
>>> print li2
[1, 2, 1, 2, 1, 2]
>>> print li2.count(li2[2])
3
>>> print li2.count('a')
0
3)insert函数:将对象添加到列表指定位置,列表里的元素顺序后移。
>>> li=[]
>>> li=range(1,11)
>>> print li
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> li.insert(5,10)
>>> print li
[1, 2, 3, 4, 5, 10, 6, 7, 8, 9, 10] >>> li.insert(6,li1)
>>> li
[1, 2, 3, 4, [5, 6, 7, 8, 9], [5, 6, 7, 8, 9]]
4)append函数:将对象添加到列表尾部位置。
>>> li=[]
>>> li1=range(1,5)
>>> for x in li1:
li.append(x) >>> print li
[1, 2, 3, 4]
例二:插入对象为列表。
>>> li=[]
>>> li1=range(1,5)
>>> for x in li1:
li.append(x) >>> print li
[1, 2, 3, 4]
>>> li1=range(5,10)
>>> li.append(li1)
>>> print li
[1, 2, 3, 4, [5, 6, 7, 8, 9]]
5)extend函数:将一个列表是所有元素以个体的方式添加到列表的尾部。
>>> li1=range(1,6)
>>> li2=range(6,10)
>>> print li1,'\n',li2
[1, 2, 3, 4, 5]
[6, 7, 8, 9]
>>> li1.extend(li2)
>>> li1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
6)remove函数:删除列表的第一次出现的指定元素。
>>> li=range(1,4)*3
>>> print 'li',li
li [1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> print 'li=',li
li= [1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> li.remove(2)
>>> print 'li=',li
li= [1, 3, 1, 2, 3, 1, 2, 3]
>>> li=range(1,4)*3
>>> print 'li=',li
li= [1, 3, 1, 2, 3, 1, 2, 3]
>>> li.pop()
3
>>> li
[1, 3, 1, 2, 3, 1, 2]
>>> li.pop(3)
2
>>> li
[1, 3, 1, 3, 1, 2]
练习:
>>> li='www.baidu.com'*10
>>> li=list(li)
>>> li.sort()
>>> i=0
>>> for s in li:
while li.count(s)>1:
li.remove(s)
i+=1 >>> print li
['.', 'a', 'b', 'c', 'd', 'i', 'm', 'o', 'u', 'w']
ii)pop函数实现:
li=[1,1,1,2,2,2,3,3,3,3,4]
length=len(li)
print li
pos=length-1
while pos>=0:
r=li.count(li[pos])
if r>1:
i=0
while i<r-1:
li.pop(pos)
pos=pos-1
i=i+1
else:
print 'Over!'
pos-=1
print li
iii)extend函数和append函数实现(有兴趣的同学可以尝试尝试)
li=[1,2,4,range(1,4),5,range(1,4),6]
print li
k=0
for li1 in li:
if isinstance(li1,list):
j=0
for li2 in li1:
li.insert(k+j,li2)
li.remove
j=j+1
del li[k+j]
k=k+1
print li
ii)单循环实现:
li=[1,2,4,range(1,4),5,range(1,4),6]
print li
b=[]
for i in li:
if isinstance(i,list):
b.extend(i)
else:
b.append(i)
print(b)
三、元组(Tuple)
>>> t=tuple(range(1,10))
>>> print t
(1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> print t[3]
4
>>> print t[2:8]
(3, 4, 5, 6, 7, 8)
四,小结
本文介绍了Python的列表的基本概念,相关函数及其用法举例,还初步介绍了元组知识,通过练习,应该对Python的列表知识有一个初步的认识。
Python学习系列(四)(列表及其函数)的更多相关文章
- Python学习系列之列表(十一)
一.为什么需要列表 变量可以存储一个元素,而列表是一个"大容器"可以存储N多个元素,程序可以方便地对这些数据进行整体操作 列表相当于其它语言中的数组 二.列表的创建1.列表需要使用 ...
- Python学习第四十天函数的装饰器用法
在软件开发的过程中,要遵循软件的一些原则封装的,不改变原有的代码的基础增加一些需求,python提供了装饰器来扩展函数功能,下面说说函数装饰器用法 def debug(func): def ...
- hive 学习系列四(用户自定义函数)
如果入参是简单的数据类型,直接继承UDF,实现一个或者多个evaluate 方法. 具体流程如下: 1,实现大写字符转换成小写字符的UDF package com.example.hive.udf; ...
- Python学习系列(四)Python 入门语法规则2
Python学习系列(四)Python 入门语法规则2 2017-4-3 09:18:04 编码和解码 Unicode.gbk,utf8之间的关系 2.对于py2.7, 如果utf8>gbk, ...
- Python学习系列(五)(文件操作及其字典)
Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件 在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...
- Python学习(四)数据结构(概要)
Python 数据结构 本章介绍 Python 主要的 built-type(内建数据类型),包括如下: Numeric types int float Text Sequence ...
- Python学习系列(九)(IO与异常处理)
Python学习系列(九)(IO与异常处理) Python学习系列(八)( 面向对象基础) 一,存储器 1,Python提供一个标准的模块,称为pickle,使用它既可以在一个文件中存储任何Pytho ...
- Python学习系列(六)(模块)
Python学习系列(六)(模块) Python学习系列(五)(文件操作及其字典) 一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: ...
- Python学习系列(二)(基础知识)
Python基础语法 Python学习系列(一)(基础入门) 对于任何一门语言的学习,学语法是最枯燥无味的,但又不得不学,基础概念较繁琐,本文将不多涉及概念解释,用例子进行相关解析,适当与C语言对比, ...
随机推荐
- hydra简单使用示例
本内容为网上收集整理,仅作为备忘!! hydra简单使用示例: 破解https: # hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https ...
- IT行业的一些专业术语
SDK:SDK(Software Development Kit, 即软件开发工具包 )一般是一些被软件工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合. 参考:h ...
- Referenced file contains errors (http://www.springframework.org/schema/aop/spring-aop-3.0.xsd). For more information, right click on the message in th
XML code<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC &q ...
- zzuli 2172 队列优化dp
2172: GJJ的日常之购物 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 9 Solved: 8 SubmitStatusWeb Board De ...
- shell中条件判断if中的-z到-d
shell中条件判断if中的-z到-d的意思 2011-09-05 10:30 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为 ...
- 如何批量更改linux文件的内容
在工作当中,我们往往需要修改某个文件夹下面所有文件的内容,例如把里面的日期统一替换成新的日期,或者把某一串字符替换成另外一串字符,这时我们就可以使用sed命令: sed -i "s/olds ...
- 【spark】分区
RDD是弹性分布式数据集,通常RDD很大,会被分成多个分区,保存在不同节点上. 那么分区有什么好处呢? 分区能减少节点之间的通信开销,正确的分区能大大加快程序的执行速度. 我们看个例子 首先我们要了解 ...
- 【第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛-L】用来作弊的药水
链接:https://www.nowcoder.com/acm/contest/90/L来源:牛客网 输入x,a,y,b,(1<=x,a,y,b<=10^9)判断x^a是否等于y^b 前面 ...
- HData——ETL 数据导入/导出工具
HData是一个异构的ETL数据导入/导出工具,致力于使用一个工具解决不同数据源(JDBC.Hive.HDFS.HBase.MongoDB.FTP.Http.CSV.Excel.Kafka等)之间数据 ...
- IOS对存放对象的数组排序
我们开发的每个程序都会使用到一些数据,而这些数据一般被封装在一个自定义的类中.例如一个音乐程序可能会有一个Song类,聊天程序则又一个 Friend类,点菜程序会有一个Recipe类等.有时候我们希望 ...