list
生成list
names = ['park','json','xff','ycq']
names = []
spam = [['cat', 'bat'], [10, 20, 30, 40, 50]] #就像其他语言里的多维数组
获取list元素
names[0]
spam[1][4]
names[-1]
切片
names[:] #复制list
names[2:5]
names[:5]
name[3:-1]
len()函数
获取对象的长度,可用于str、list、dict
list连接和复制
根str的连接和复制一样
[1, 2, 3] + ['A', 'B', 'C']
['X', 'Y', 'Z'] * 3
del语句
需要知道要删除元素的下标。可用于str、list、dict、int、float
del names[2]
list循环
supplies = ['pens', 'staplers', 'flame-throwers', 'binders']
for i in range(len(supplies)):
print( supplies[i])
这个用法感觉有点像c语言
supplies = ['pens', 'staplers', 'flame-throwers', 'binders']
for i in supplies:
print(i)
这样才像Python
in 和 not in
验证成全资格,可用于if的条件判断
list的方法
index()
返回元素的下标
spam = ['hello', 'hi', 'howdy', 'heyas']
spam.index('hello')
append() / insert(,)
list添加元素,没有返回值
spam.append('moose')
添加元素到list末尾
spam.insert(1, 'chicken')
添加元素后’chicken‘在位置1
pop() / pop(9)
list.pop()
删掉list的最后一个元素
list.pop(9)
删掉list下标为9的元素
有返回值的list方法
remove()
根据’元素值‘删除元素,永久删除。无返回值
spam.remove('bat')
删除不存在的元素会报错ValueError: list.remove(x): x not in list
所以在删除前应该确定成员资格 if 'xx' in spam
sort()排序
永久排序,
spam.sort()
spam.sort(reverse=True)
sort()方法对字符串排序时,使用“ASCII 字符顺序”,而不是实际的字
典顺序。这意味着大写字母排在小写字母之前
spam.sort(key=str.lower)
需要按照普通的字典顺序来排序,就在sort()方法调用时,将关键字参数
key 设置为str.lower。
不可变数据类型的改变
不可变数据类型:数子、字符串、布尔
可变数据类型:list、Dict、
可以通过id()函数来看类型是不是可变数据类型,给变量重新赋值后如果ID改变那么就是不可变数据类型。可改变数据类型实际上指的是python开辟的内存区间的内容是可以改变的。
在参数调用的时候,不可变数据类型调用的是值,不可变数量类型调用的是指针。
name = 'Zophie a cat'
name[7] = 'the'
str、tuple是不可变的,以上的做法会报错TypeError: 'str' object does not support item assignment
但是可以通过一些方法构造新的str和tuple
name = 'Zophie a cat'
newName = name[0:7] + 'the' + name[8:12]
tuple1 = (1,2,3,4)不能修改元组中的一个元素,例如tuple1[0] = 6,会出错。但是可以这样做给tuple1重新赋值,tuple1 = (6,2,3,4)
元组
names = ('park','cff','ycq')
names = ('park',)
如果元组中只有一个值,你可以在括号内该值的后面跟上一个逗号
数据类型转换
list()和tuple()