Python-列表&字典&字符串
1.列表(数组) list
1 stus1 = ['zhangsan','张三',1,2.78] # 列表定义,不限制类型
2 stus2 = [] # 定义一个空列表
1 # 增加列表元素
2 stus1.append('李四') # 在末尾增加列表元素
3 stus1.insert(9,'王五') # 在特定位置插入元素,若指定下标不存在,则插入到最后
1 # 查询列表元素
2 print('单个取值',stus1[1]) # 索引(下标、脚标)从0开始
3 print('取最后的值',stus1[-1]) # 索引为负时,为倒序取值,-1为倒数第一,-2为倒数第二
1 # 修改列表元素
2
3 stus1[2] = '赵四' # 找到具体索引,直接修改值
1 # 删除列表元素
2 stus1.pop() # 不指定位置,默认删除列表中最后一个元素
3 stus1.pop(2) # 删除指定索引的列表元素,有返回值
4 del stus1[0] # 删除指定索引的列表元素,无返回值
5 stus1.remove('张三') # 删除列表指定元素,若有相同元素,则删除索引靠前的一个
1 # 其他方法
2 count = stus1.count('zhangsan') # 统计指定元素在list中的数量
3 stus1.clear() # 清空列表
4 stus2 = stus1.copy() # 复制列表
5 stus1.reverse() # 反转列表
6 stus1.sort() # 排序 默认升序
7 stus1.sort(reverse=True) # 排序 表示升序排完之后,反转变成升序
8 stus1.extend(stus2) # 把一个stus2中的元素,加入到另一个stus1中,默认添加到末尾
9 name = stus1.index('张三') # 查找指定元素的索引
10 stus1.len() # 获取数组长度
# 多维数组
nums1 = [1,2,3,4,['a','b','c','d',['张三','李四','王五']]]
# 取值
print(nums1[4][4][2]) # 输出王五
# 遍历列表中每一个元素时,直接使用for i in 列表 即可
stus = ['张三', '李四', '王五']
for i in stus:
username = 'szz-' + i
print(username)
2.字典 dict
1 # 定义字典
2 stu_info = {'username':'张三','password':'123456','money':200,'addr':'北京'} # 定义一个字典,key:value
3 stu_info1 = {} # 定义一个空字典
4 stu_info2 = dict() # 定义一个空字典
1 # 增加字典元素
2 stu_info1['name'] = '李四'
3 stu_info1['age'] = '15'
4 stu_info1.setdefault('class','双子座') # 设置一个默认元素class:双子座
5 # setdefault增加方式:若增加的元素key值已存在,使用setdefault则不会修改其value的值,若不存在,则新增一个key:value
1 # 删除字典元素
2 stu_info1.pop('name') # 删除指定元素
3 del stu_info1['name'] # 删除指定元素
4 stu_info1.popitem() # 随机删除字典中的一个元素
5 stu_info1.clear() # 清空字典
6 stu_info1.update(stu_info) # 将stu_info字典添加到stu_info1字典后面
1 # 修改字典元素
2 stu_info1['name'] = '王二' # 修改指定key的value值
1 # 查询字典元素
2 stu_info1['name'] #取key不存在的值时,报KeyError错误
3 stu_info1.get('name') #取key不存在的值时,返回None
4 stu_info1.get('name',0) #表示返回值为None时,返回0
5
6 print(stu_info1.keys()) # 返回字典中所有的key
7 print(stu_info1.values()) # 返回字典中所有的value
1 # 字典遍历
2
3 user = {
4 'zhangsan':'123456',
5 'lisi':'123456',
6 'wangwu':'123456',
7 'zhaoliu':'123456',
8 'lili':'123456'
9 }
10
11 # 把字典里面每个用户的密码,前面都加上username_
12 for i in user:
13 value = user[i]
14 value = '%s_%s'%(i,value)
15 user[i] = value
16 print(user)
17
18 for k,v in user.items(): # 取字典的key和value
19 print('%s_%s'%(k,v)) # 格式化输出
3.字符串 str
1 s = ' abc '
2 li = ['xiaoming','zhangsan','lisi','wangwu']
3 s.strip() # 去掉换行符和两边的空格
4 s.strip('c') # 去掉指定的字符
5 s.lstrip() # 去掉左边的空格
6 s.rstrip() # 去掉右边的空格
7 s.count('c') # 统计某个字符串出现了几次
8 s.index('c') # 统计某个字符串的索引,若字符串不存在,会报错,存在相同字符时,返回第一处存在的位置
9 s.find('c') # 统计某个字符串的索引,若字符串不存在会返回-1
10 s.capitalize() # 首字符大写
11 s.upper() # 字符串全部变成大写
12 s.lower() # 字符串全部变成小写
13 s.replace('a', 'c') # 替换,将a替换成c;替换的字符换不存在时,不会报错
14 s.replace('a', 'c', 1) # 将a替换成c,只替换一次
15 s.endswith('.jpg') # 判断字符串是否以.jpg结尾
16 s.startswith('a') # 判断字符串是否以a开头
17 print('欢迎'.center(50, '*')) # 表示用'*'和'欢迎'组成一个长度为50的字符串,且'欢迎'在中间
18 s.isspace() # 判断是否为空格
19 s.isupper() # 判断是否为大写
20 s.islower() # 判断是否为小写
21 s.isalnum() # 判断是否含有特殊符号
22 s.isalpha() # 不是数字和特殊符号即返回True
23 s.isdigit() # 判断为整数即返回True
24 s.zfill(5) # 将字符串用0补齐5位,若位数够,则不补;补齐在字符串前面
25 m = s.format_map({'name': 'zhangsan', 'addr': 'beij'}) # 传一个字典
26 resule = s.split(',') # 按照某个字符串分割,将分割后的元素放到某个list中;若指定的字符串不存在,则将字符串放到list中
27 resule1 = s.split() # 不传值,默认用空格分割
28
29 print(','.join(li)) # 将li列表变成字符串;将li列表用','连接起来
1 import random
2 import string
3 print(string.ascii_letters) # 输出所有英文字符的大写和小写
4 print(string.ascii_lowercase)# 输出所有英文字符的小写
5 print(string.ascii_uppercase)# 输出所有英文字符的大写
6 print(string.digits) # 输出数字0-9
7
8 num = [1,2,3,4,5,6,7,8,9]
9 result1 = random.sample(num,4) # 随机从num中取四位
10 print(result1)