Python学习 day04
一、list
list可以存放各种类型的数据,与java中list类差不多,比如li = ['keith', 1, True, [1, 2, 3], {name: 'tangtang', age: 18}];
并且列表是有序的、有索引的、可切片、方便取值。
基本索引与切片类似str。
列表的基本操作
增
- append() -- 追加一个元素0
- extend() -- 追加多个元素,extend的参数必须是可迭代的对象,否则报错。例:
# extend list = ['Mary', 'Sue', 'Lily'] list.extend('Smith') print(list) list = ['Mary', 'Sue', 'Lily'] list.extend(('Zet', 'Bob')) print(list) list = ['Mary', 'Sue', 'Lily'] list.extend({'name': 'Ann', 'name': 'John', 'age': 20}) print(list)
结果:

- insert() -- 插入一个元素,插入的位置为参数之前。
删
- pop() -- 按索引取出,默认取最后一个,返回取出的元素
- remove() -- 按元素删除,无返回值
- clear() -- 清空列表
- del 关键字 -- 删除列表,也可切片删除,例:
li = ['Mary', 'Sue', 'Lily', 'Harry', 'Nancy'] del li[2:4] print(li) del li print(li)
结果:

改
- 直接使用下标:li[1] = XX
- 切片修改,例:
# 切片修改会删除索引内的元素,然后在切片位置将可迭代的对象迭代插入 li = ['Mary', 'Sue', 'Lily', 'Harry', 'Nancy'] li[2:4] = 'Sally' print(li)
结果:

查
- for循环查,基本代码:
for i in 列表: print(i)
- 切片查,如:li[2:9]
其他操作
- sort() -- 排序,从小到大,sort有一个参数reverse,默认为False,设置为True倒序排序,例:
li = [2, 5, 1, 8, 5, 9, 4] li.sort(reverse=True) print(li)
结果:

- reverse() -- 反转,例:
li = [2, 5, 1, 8, 5, 9, 4] li.reverse() print(li)
结果:

二、tuple
元祖,被称为只读列表,只能查询,不能修改。但存在特殊情况,如:
t = (2, 'lala', [2, 0, 3, 8, 1], 'yangmeme ', ('fea', 2, 0)) t[2][3] = 12 t[2].append('hei') print(t) t[3] = t[3].upper() print(t)
结果:

三、公共方法
- len()
- count()
- index() 注:列表中没有find()方法,查询某元素只能用index(),查询不到报错
- str.join(sequence) -- 将序列中的元素以指定的字符连接生成一个新的字符串,序列不能是数字序列。可以用来做列表元祖等转换成字符串,str()也可以做转换,但仅仅只是在外层加个引号而已。例:
#join l = ['糖糖', '酥酥', 'yang', 'jian'] print('++'.join(l)) s = 'AAAAA' print('a'.join(s)) t1 = ('1', '3', '5', '6', '9') t2 = (1, 3, 5, 6, 9) print('*'.join(t1)) print('*'.join(t2))
结果:

四、range()
range() -- 函数可创建一个整数列表,一般用在 for 循环中,例:
for i in range(3, 8): print(i)
结果:

range(首, 尾, 步长) ,若以0为开头,0可省略
五、小知识
python2在编译安装时,可以通过参数 --enable-unicode=ucs2 或 --enable-unicode=ucs4 分别用于指定使用2个字节、4个字节表示一个unicode字符;python3无法进行选择,默认使用ucs4。
查看当前python中表示unicode字符串时占用的空间:
import sys print(sys.maxunicode) # 如果值是 65535,则表示使用ucs2标准,即:2个字节表示 # 如果值是 1114111,则表示使用ucs4标准,即:4个字节表示

浙公网安备 33010602011771号