python教程3--list、tuple、dict、set

1.list

list是列表,是一种有序集合,使用方法如下:


# 1.新建list
names = ['张三','李四','王五','赵六']
list2 = ['张三',True,4]
list3 = ['张三',55,list2]

# 打印结果如下,发现,list集合可以随便玩儿,类型不同可以,嵌套也可以

# ['张三', '李四', '王五', '赵六']
print(names)
# ['张三', True, 4]
print(list2)
# ['张三', 55, ['张三', True, 4]]
print(list3)

# len() 获取集合长度
print(len(names))

# 索引获取第几个元素(从0开始)
print(names[2])

# 获取最后一个元素可以用 [-1]
print(names[-1])

# 获取倒数第二个[-2],倒数第三个[-3]......
print(names[-2])

# 插入到末尾
names.append('末尾啊')
print(names)

# 插入到索引为2的位置
names.insert(2,'插入')
print(names)

# 删除末尾元素
names.pop()
print(names)

# 删除指定索引位置
names.pop(1)
print(names)

# 索引为1的替换为 '啦啦'
list2[1]='啦啦'
print(list2)

list2 = ['张三',True,4]
list3 = ['张三',55,list2]

# 从list3中获取True这个元素
print(list3[2][1])

# 获取55的索引
print(list3.index(55))

2.tuple

tuple是有序列表,叫元组,tuple和list非常类似,但是tuple一旦初始化就不能修改,所以比较安全。

# 定义tuple
t = (1,4,'sa','ad')
print(t)

# 只有一个元素且是数字时 这个()会当运算符

# 4
a = (4)
print(a)

# 只有一个元素且是数字时 加个,,防止将()误解为运算符

# (4,)
b = (4,)
print(b)

list3 = ['小红','小绿','小芬']
c = (4,36,list3,32,32,54,32,32)

# 获取32所在位置的索引 第一次出现时的
print(c.index(32))

# 计算32有多少个
print(c.count(32))

# 体会不变 不变是 指向不变

# (4, 36, ['小红', '小绿', '小芬'], 32, 32, 54, 32, 32)
print(c)

# (4, 36, ['小红', '小绿', '小芬', '白加黑'], 32, 32, 54, 32, 32)
list3.append("白加黑")
print(c)

总结:list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。

3.dict

dict全称dictionary,对应java中的map,使用键-值(key-value)存储,具有极快的查找速度。这种key-value存储方式,在放进去的时候,会根据key计算出value的存放位置。

一个key只对应一个value,重复添加会覆盖,dict内部存放的顺序和key放入的顺序是没有关系的。

和list比较,dict特点:
– 查找和插入的速度极快,不会随着key的增加而变慢;
– 需要占用大量的内存,内存浪费多

而list相反:
– 查找和插入的时间随着元素的增加而增加;
– 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

# 定义dict
d1 = {'name':'张三','age':28,'address':'浙江'}

print(d1['address'])
# 浙江

# 判断是否存在 x in dict
if 'name' in d1:
    print('有name属性')
else:
    print('没有name属性')
# 有name属性

# 判断是否存在 get() 没有就是None
print(d1.get('name'))
# 张三

print(d1.get('city'))
# None

# 没有值就用自己定义的 get(x,b) 没有拿到x就把b的值给x
print(d1.get('province','山西省'))
# 山西省

# 删除一个值 pop()
d1.pop('age')
print(d1)
# {'name': '张三', 'address': '浙江'}

4.set

set是无序,不重复的集合

# 创建set 是无序集合
s = set([1,3,6,91,'aa'])
print(s)
# {1, 3, 6, 'aa', 91}

# 重复元素会自动过滤
s1 = set([22,64,22,64,8])
print(s1)
# {64, 8, 22}

# 添加元素
s.add('er')
print(s)
# {1, 3, 6, 'er', 91, 'aa'}

# 删除元素
s.remove(91)
print(s)
# {1, 3, 6, 'er', 'aa'}

s2 = set([22,54,12])
s3 = set([22,65,'li'])

# 交集
print(s2&s3)
# {22}

# 并集
print(s2|s3)
# {65, 54, 22, 'li', 12}


# 观察set的不重复性

list4 = [2,5,32]
s4 = ([2,42,'a',list4])
print(s4)
# [2, 42, 'a', [2, 5, 32]]

list4.append(54)
print(s4)
# [2, 42, 'a', [2, 5, 32, 54]]

list4.append(5)
print(s4)
# [2, 42, 'a', [2, 5, 32, 54, 5]]

5.体验变化

list5 = [3,2,55,3,4,1]
list5.sort()
print(list5)
# [1, 2, 3, 3, 4, 55]

list5.sort(reverse=True)
print(list5)
# [55, 4, 3, 3, 2, 1]

st = 'abcde'
st2 = st.replace('b','B')
print(st)
# abcde

print(st2)
# aBcde
    原文作者:IT云清
    原文地址: https://blog.csdn.net/weixin_39800144/article/details/80164940
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞