python-数据类型列表、元组、字典、集合常见用法
1、变量:
变量帮助我们把一些数据存储起来,相当于一个标签tag,方便后续的使用。需要注意的是 当我们用一个变量x1给另一个变量x2赋值时,改变x1的值,x2的值依旧是x1的原始值,因为变量x2是根据x1的牵引找到变量值的内存地址,所以改变x1的变量值不会影响x2。
name1 = 'Frank' name2 = name1 print(name1, name2)# 输出结果 Frank Frank name1 = 'Jack' print(name1, name2)# 输出结果 Jack Frank
2、字符串
name = 'my name is frank'
print(name.capitalize())
# 首字母大写
print(name.count('a',strat, end))
# 计算a的个数,默认从头到尾计算
print(name.center(20,'-'))
# 中心化输出,不够的用'-'补上
print(name.find('name'))
# 寻找位置,如果找不到返回-1
print(name.index('name')
# 和find是一样的功能,如果找不到便会报错
print(','.join(['1','2','3']), '='.join(['1','2','3']))
# 将其他的东西连接起来, 最后格式为字符串型
x = ' '.join(['1','2','3'])
print(x, type(x))
# type查询变量类型
print('alex\n'.lstrip())
# strip()去掉左边和右边的空格符与换行符
print('aabbccdd'.ljust(20,'*'))
# 从左边数数,不够20则往右补上 "*"
print('aabbccdd'.rjust(20,'*'))
# 从右边数数,不够20则在左补上 "*"
print('alex li'.replace('l', 'L', 2))
# old:str, new:str, count:int, 表示你要替换几个
print('alex li'.rfind('l'))
# 从左往右数,找到最靠近右边你所查找的
print('Alex Li'.swapcase())
# 与原先大小写相反
字符串还可以切片,name[a:b:c], a是开头,b是结尾,c是步长,顾头不顾尾,大家可以试试,或者看看help文件。 注意的是可以倒着切片,name[3:-2] 就是从下表为3一直切到倒数第二个,不包括倒数第二。-1表倒数第一,依次类推,实践一下就好。
3、列表
简单介绍下增、删、改、查 and 合并功能。 list = [ ] 这样就是定义了一个空列表,它是按照下标序号查找的,从0开始,有序输出,列表里内容称为元素,可以是任何类型,字符串,列表、字典、元组等。
names = ['frank','fra','frango','Jack']
names2 = [1, 2, 3, 4]
# 1、增加元素
names.append("添加一个")
# append()增,一般是加在最后面
names.insert(1, "Alex")
# 插入, 数字1 表示我要插入的位置,这里是下标1,也就是插入在'fra'前面
print(names)
# 2、删除,按照下标删除和按照元素内容删除
names.remove("fra")
# 删除一个确定的,也就是按照元素内容
print(names.index('frango'))
# 确认"frango"的位置
res = names.pop(index)
# 默认不添加下标,删除最后一个,并且会返回该值
del names[index]
names.clear()
# 删除整个列表,谨慎使用
names.reverse()
# 将列表顺序反转 [1,2,3,4,5]----->[5,4,3,2,1]
# 3、修改
names[0] = 9999
# 将names的第一个元素修改为999
# 4、查询,按照元素下标查询
names[1] # 列表的第二个元素
names.count('fra')
# 计数
names.extend(names2)
# 将两个列表合并成一个, 新列表的内容全是单个的元素,相当于扁平化
names+names2
# 拼接两个列表,与extend的区别是,拼接的元素可能包括列表、字典等
del names2
# 删除一个列表
print(numerate(lst))
# 输出单个元素的index和value
4、字典{key: value}
字典是一个典型的键值对输入,在我们需要一一对应时,时一个很好的选择,携带的信息更加清楚。dict = {"name":"frank", "age":"18"},与列表的差异很明显了吧。
# 字典的增删改查
info = {'stu01': 'white', 'stu02': 'frank', 'stu03': 'jack'}
# 1、增加
info['stu04'] = '小马哥'
# 没有就直接添加,有则把原来的改成小马哥
# 2、删除
info.pop("stu01")
# 指定删除,有返回值,返回它的value
def info[’stu01']
# 指定删除,无返回值
# 3、查询
info.get('stu05', value)
# 安全查找, 不会报错,如果没有返回指定value.默认为-1
info['aaa']
# 找不到该key,直接报错
# 4、修改
info.setdefault('河北', {'张家口': ['银座', '尚峰']})
# 也就是插入一个键值对,如果有便修改,没有则添加一个新的键值对
b = {'stu1':'wudi', 'stu01':'hahah'}
info.update(b)
# b是一个字典,有相同的key则改,没有则添加
print(info.items())
# key与value值成对出现
for i in info: # 这种方法更高效
print(i, info[i])
for k, v in info.items():
print(k, v)
```
5、元组
**列表和字典**都是可变类型,即发生增删改的操作对应的是用一个内存地址。
**元组和字符串、数字**是不可变类型,每一次修改都是重新变量定义,内存地址发生变化。
tuple = (1,2) 如果只有一个元素 tuple1 = (1,) # 加上逗号即可,当然它里面可以是无限个元素 tuple3 = (1,2,3,4) # 无法直接发生修改
6、集合set
集合的概念和高中数学的概念是一样的。去重,交集,并集,差集等。
s = [1,2,3,4,5,6,7,4,5,6]
print(set(s)) # [1,2,3,4,5,6,7]
s1 = {1,2,3,4,5}
s2 = {2,3,4}
print(s1.intersection(s2),'\t', s1 & s2)
# 查看交集
print(s1.union(s2), '\t', s1 | s2)
# 查看并集
print(s1.difference(s2), '\t', s1-s2)
# 查看差集
print(s2.symmetric_difference(s1))
# 查看s2在s1中的补集
print(s1.issubset(s2))
# s1是否是s2的子集

浙公网安备 33010602011771号