- 列表(list)
可迭代对象:能被for循环获取
#引用列表中的列表中的元素
li[4][1][2] #可以引用列表中的列表中的列表中的某元素
#列表转换字符串:(join、for循环)
1.列表中仅包含字符串可以使用join拼接
li = ['ss','df']
v = ''.join(li)
print(v)
# --> ssdf
2.若还有其他数据类型,则只能使用for循环累加得到。
#向后追加: (append、extend)
li.append('2') #--> ['ss', 'df', 2]
li.append(['s',2,'asd']) #--> ['ss', 'df', ['s', 2, 'asd']]
li.extend(['s',2,'asd']) #--> ['ss', 'df', 's', 2, 'asd']
li.extend('假道') #--> ['ss', 'df', '假', '道']
#append即将括号内的元素原封不动添加到原列表中
#而extend可将可迭代对象拆分成单个元素插入原列表
#在任意位置插入
li.insert(1,'ss')
#计数
v = li.count('s')
#查找元素第一次出现的位置
v = li.index('ss')
#删除:(del、pop、remove)
del li[2:4]
v = li.pop(1) #删除指定位置的元素(默认为末尾),并将删除的元素赋值给v
li.remove('ss') #删除第一个出现的某元素
#列表反转
li.reverse()
#排序
li.sort() #默认降序,升序:li.sort(reverse=True)
对象.方法() :专业术语叫做 对象×××引用方法×××
- 元组(tuple)
tuple = (33,'alex',(11,22),[(33,44)],True,)
1.一般写元组时,在最后加入一个逗号,不影响任何东西,但可便于区分tu=(1,’s’,)
2.相对于列表,其一级元素(仅限一级元素)不可被修改,不能被增加或删除
**若一级元素是列表、元组等类型,则其内部元素可修改
3.同为可迭代对象的字符串、列表、元组可相互转换
- 字典(dict)
1.字典是无序的
2.布尔值可以作为key,但True = 1,False = 0(二者作为key完全相同)
info = {'k1':'ss','k2':23} #创建字典
#获取某key对应的value:
v = info['a2'] #获取a2对应的值,注意用方括号
v = info.get('a2',"can't find") #获取a2对应的值
#上述两种方法区别:
#当a2不存在时,第一种方法会报错,而第二种方法会返回后面的字符串(无字符串则返回None)
#设置值
v = info.setdefault('k22', 'asdf')
#若k22存在,则返回其value给v;若k22不存在,则将’k22’:’asdf’加入字典info,同时返回’asdf’给v
#更新
info.update({'k1':1234, 'as12':111111})
#若原字典的key有k1,as12,则将其value替换成新设的值;若没有,则将其添加入原字典
#上式的另一种写法是:
info.update(k1=1,k3='3',k5='asdf')
#两种写法效果一样
#删除元素
del info['k1']
v = dic.pop(‘k1’,90) #删除并返回其值,若k1不存在,则返回自设的值(90),无自设则报错
k,v = info.popitem() #随机删除并返回其key和value
#循环输出其元素
for item in info: #默认输出字典的key
print(item)
for item in info.keys(): #循环输出key
for item in info.values(): #循环输出value
for k,v in info.items(): #循环对应输出元素key和value
print(k,v)
#根据序列(作为key),创建字典,并指定统一的值
v = dict.fromkeys(['k1',2,3], 2)
#等价于v = {‘k1’:2, 2:2,3:2}