一 : 列表
-
基本操作
列表
: 是由一系列按特定顺序排列的元素组成,用[]
来表示列表,并用,
来分隔其中的元素
列表
中的元素可以是 数字,字符串,列表,布尔值,所有的都能放进去,列表是有序的,元素可以被修改
li = [1, 12, 9, "age", ["王总好", "雪芙"], "美丽"]
列表中的元素可以迭代
,就是可以循环的意思啦
for item in li:
print(item)
列表取索引值
print(li[0])
切片取值
print(li[0:-1])
列表元素,可以被修改
li[1] = 120
根据下标删除某个元素
del li[1]
切片方式修改列表元素
li[0:2] = [100, 200]
切片方式删除列表元素
del li[2:4]
print(li)
[1, 12, ['王总好', '雪芙'], '美丽']
使用 in
查看某元素是否在列表中
v = 12 in li
print(v)
True
-
列表转换
将字符串转换成列表,内部使用for
循环
s = "sdfjkldsfkljdsfj"
new_li = list(s)
print(new_li)
['s', 'd', 'f', 'j', 'k', 'l', 'd', 's', 'f', 'k', 'l', 'j', 'd', 's', 'f', 'j']
数字不能被迭代(不能转成list)
for item in list(123):
print(item)
TypeError: 'int' object is not iterable
列表转换成字符串形式
li = [11, 22, 33, "123", "tz"]
r = str(li)
print(r)
[1, 12, 9, 'age', ['王总好', '雪芙'], '美丽']
列表转换成我们平时连在一起的字符串,需要自己写for循环(列表即有数字,又有字符串)
1129age['王总好', '雪芙']美丽
列表转换成字符串,列表中只有字符串时候的方法,join在内部也是for循环,循环每一个元素与前面进行拼接
li2 = ["123", "zzz"]
v = "".join(li2)
print(v)
123zzz
-
列表常用方法
( 1 )追加方法
li = [55, 11, 22, 33, 44]
li.append(55)
li.append("tz")
[55, 11, 22, 33, 44, 55, 'tz']
( 2 )清空列表
li.clear()
print(li)
[]
( 3 )拷贝/复制(浅拷贝)
v = li.copy()
print(v)
( 4 )计算每个元素的次数
v = li.count(22)
print(v)
( 5 )extend,参数-可迭代对象
li.extend([9898, "lala"])
li.extend("厉害了")
print(li)
[55, 11, 22, 33, 44, 9898, 'lala', '厉', '害', '了']
与append区别
li.append([9898, "lala"])
print(li)
[55, 11, 22, 33, 44, [9898, 'lala']]
( 6 )索引位置,根据值获取当前索引位置(有同值情况下左边优先)
v = li.index(11)
print(v)
( 7 )插入,在指定索引位置插入值
li.insert(0, "DJB")
print(li)
['DJB', 55, 11, 22, 33, 44]
( 8 )pop ,删除指定索引值,并获取删除当前值,没有参数默认删除最后一个元素
v = li.pop()
print(li)
print(v)
[55, 11, 22, 33]
44
( 9 )remove ,删除指定值
li.remove(33)
( 10 )列表反转
li.reverse()
print(li)
(11)sorted 排序,默认从小到大
li.sort()
print(li)
[11, 22, 33, 44, 55]
li.sort(reverse=True)
print(li)
[55, 44, 33, 22, 11]
二 : 元组
-
基本操作
相比于列表,元组
不可以被修改,并且元组不能被增加或者删除
注意 : 在写元组的时候最后加一个,
tu = (111, 111, 22, 33, ["66", "77"], "狗", (11, 22),)
索引
v = tu[0]
print(v)
切片
v = tu[0:2]
print(v)
(111, 111)
可以被for 循环
for item in tu:
print(item)
-
转换
字符串,列表,与元组之间的转换
s = "sdfsdflksdf"
li = ["11", 22]
print(tuple(s))
print(tuple(li))
print(list(tu))
('s', 'd', 'f', 's', 'd', 'f', 'l', 'k', 's', 'd', 'f')
('11', 22)
[111, 111, 22, 33, ['66', '77'], '狗', (11, 22)]
只有字符串的元组可以使用join拼接成字符串,但有数字的元组要用for循环
tu1 = ("11", "2sdf", "ee")
v = "_".join(tu1)
# print(v)
11_2sdf_ee
元组也是可迭代对象
li.extend(tu)
print(li)
元组和列表一样是有序的
print(tu[4][1])
77
元组的一级元素不可修改/删除/增加
tu[0] = 123 //报错
-
元祖常用方法
( 1 )count 获取指定元素在元组中出现的次数
print(tu.count(22))
( 2 )index 获取某个元素在元组中的下标
print(tu.index(22))
三 : 字典
字典
是一系列键值对,每个键都与一个值相关联,可以使用键来访问与之关联的值,与键相关联的值可以是数字,字符串,列表,字典,可以将任何值
作为字典的值
-
基本操作
info1 = {
"k1": 18,
"k2": True,
"k3": [11, 22, 33, {"kk1": "vv1"}],
"k4": (11, 22, 33, 44)
}
print(info1)
{'k1': 18, 'k2': True, 'k3': [11, 22, 33, {'kk1': 'vv1'}], 'k4': (11, 22, 33, 44)}
列表,字典不能作为字典的key (哈希问题),布尔值作为key 可能会与 key 为1或者0的值重复
info2 = {
1: 'aaa',
"k": "kkk",
True: "123",
# [11, 22]: 123,
(1, 2, 3): "ddf",
# {'k1': 'v1'}: 123,
}
print(info2)
{1: '123', 'k': 'kkk', (1, 2, 3): 'ddf'}
访问
info2['k']
字典是无序的
v = info2[1]
print(v)
123
删除
del info2["k"]
print(info2)
{1: '123', (1, 2, 3): 'ddf'}
循环,默认循环所有的key
for item in info2:
print(item)
1
k
(1, 2, 3)
等同于
for item in info2.keys():
print(item)
循环values
for value in info2.values():
print(value)
123
kkk
ddf
循环key,value
for k, v in info2.items():
print(k, '+++', v)
1 +++ 123
k +++ kkk
(1, 2, 3) +++ ddf
-
字典常用方法
( 1 )clear
info2.clear()
{}
( 2 )浅拷贝
info2.copy()
( 3 )fromkeys 根据序列创建字典,并指定统一的值
dic = {'tz': '帅', 'zz': '酷'}
v1 = dic.fromkeys(["k1", 123, "999"], 111)
print(v1)
{'k1': 111, 123: 111, '999': 111}
( 4 )get 根据key获取值,更安全,key没有根据后面参数创建,默认值为None
v2 = info2.get('1111', 111)
print(v2)
111
( 5 )指定某一个key 删除掉,并获取值,key没有根据后面参数创建
v3 = info2.pop('ke1111', 123)
print(v3)
( 6 )随机删除,并获取值
key, value = info2.popitem()
item = info2.popitem()
print(info2, '++', key, '++', value, '++', item)
{1: '123'} ++ (1, 2, 3) ++ ddf ++ ('k', 'kkk')
( 7 )setDefault 设置值,如果已经存在,不设置,获取当前key对应的值,如果不存在,设置, 获取当前key对应的值
v5 = info2.setdefault('傻啊', '哦哦哦')
print(info2, '++', v5)
{1: '123', 'k': 'kkk', (1, 2, 3): 'ddf', '傻啊': '哦哦哦'} ++ 哦哦哦
( 8 )update 已经存在更新,不存在则添加进去
info2.update({'吴亦凡': 666, 1: '新的'})
print(info2)
{1: '新的', 'k': 'kkk', (1, 2, 3): 'ddf', '吴亦凡': 666}
info2.update(吴亦凡=666, k4='zzzz' , g = 3)
print(info2)
{1: '123', 'k': 'kkk', (1, 2, 3): 'ddf', '吴亦凡': 666, 'k4': 'zzzz', 'g': 3}
网友评论