首页 > 技术文章 > Python-列表&字典&字符串

huoxn 2019-05-21 14:57 原文

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)

推荐阅读