Python列表,字典,元组,字符串操作
Posted 风影旋新月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python列表,字典,元组,字符串操作相关的知识,希望对你有一定的参考价值。
1. 列表操作
1.1 列表的定义:
names = ["wangjing", "wangjun", "hashiqi"] names[0] = "wangjing" ...
1.2 切片:取多个元素
names[1:3] #包含左边,不包含右边 names[-1] #列表中的最后一个元素 names[-3:] #取列表的最后三个元素 names[0:3]=names[:3] #取列表的前三个元素
1.3 追加
names.append(‘xiaojingzi‘) #在列表的最后插入一个元素
1.4 插入
names.insert(1, ‘liuyumao‘) #插入一个元素,第一个参数为在列表中插入的位置
1.5 修改
names[2] = ‘weichong‘ #将列表的第三个元素修改
1.6 删除
names.remove(‘weichong‘) #删除列表中‘weichong‘的元素 names.pop(1) #删除列表中第二个元素,并返回 del names[1] #第三种方法
1.7 扩展
names2 = [1, 2, 3, 4] names.extend(names2) #[‘#jjkj‘, ‘4djisd‘, ‘hashiqi‘, ‘wangjing‘, ‘wangjun‘, 1, 2, 3, 4]
1.8 copy
# 浅copy的三种形式 p1 = copy.copy(person) p2 = person[:] p3 = list(person) #浅copy的用途,创建联合账号 person = [‘name‘, [‘saving‘, 100]] p1 = copy.copy(person) p2 = person[:] p1[0] = ‘ales‘ p2[0] = ‘fengjia‘ p1[1][1] = 2000 print(p1) print(p2) # p1 p2 的saving都发生了变化
# 深copy的形式
names3 = copy.deepcopy(names)
1.9 统计
names=[‘Alex‘, ‘Tenglan‘, ‘Amy‘, ‘Tom‘, ‘Amy‘, 1, 2, 3] names.count("Amy") # 2
1.10 排序
names.sort() #特殊字符,数字,大写字母,小写字母,不同的数据类型不能够放在一起排序,报错
1.11 反转
names.reverse() #反转
1.12 获取下标
names.index(‘xiaojingzi‘) # 获取下标
2 元组
元组和列表差不多,只是一旦创建,便不能修改
names = ("alex","jack","eric") names.count(‘alex‘) #统计元素的个数 names.index(‘ales‘) #获取元素的索引
3 字符串操作
name = ‘My name is {name} and i am {years} old‘ print(name.capitalize()) # 首字母大写,不改变原来的字符串 print(name.count(‘a‘)) # 统计字符的个数 print(name.center(50, ‘-‘)) # name居中,不够的使用-补齐 print(name.endswith(‘ax‘)) # 判断字符串是否是以某某结尾 print(name.expandtabs(tabsize=30)) # 扩展tab键 print(name.find(‘l‘)) # 查找字符 print(name[3:]) # 字符串的切片 print(name.format(name=‘alex‘, years=20)) # format的格式 print(name.format_map({‘name‘: ‘laex‘, ‘years‘: 12})) # 字典 print(‘avc278‘.isalnum()) # 只包含英文字符和数字 print(‘abA‘.isalpha()) # 纯英文字符 print(‘1A‘.isdecimal()) # 是否是十进制 print(‘232‘.isdigit()) # 判断是否是数字 print(‘True‘.isidentifier()) # 判断是否是合法的标识符 print(‘a A‘.islower()) # 判断是不是小写 print(‘33.3‘.isnumeric()) # 判断是不是数字 print(‘ ‘.isspace()) # 判断是不是空格 print(‘My Name Is‘.istitle()) # 判断是不是标题,每个字母开头必须大写 print(‘My Name Is‘.isprintable()) # 判断是否能够打印 print(‘My Name Is‘.isupper()) # 判断是否是大写 print([‘‘.join([‘1‘, ‘2‘, ‘3‘])]) # 字符拼接成字符串 print(name.ljust(50, ‘*‘).format(name=‘wangjing‘, years=20)) # 保证最小长度为50,不够长度在最右边补* print(name.rjust(50, ‘-‘).format(name=‘wangjing‘, years=20)) # 保证最小长度为50,不够长度在最左边补- print(‘Ales‘.lower()) # 字符串全部转换成小写 print(‘Ales‘.upper()) # 字符串全部转换成大写 print(‘ Alex ‘.lstrip()) # 去掉左边的空格和回车 print(‘ Alex ‘.rstrip()) # 去掉右边的空格和回车 print(‘ Alex ‘.strip()) # 同时去掉左边和右边的回车以及换行 p = str.maketrans(‘abcdef‘, ‘123456‘) # 将abcdef 分别用123456来代替 print(‘alex li‘.translate(p)) # 使用P的代替规则来改写字符串 print(‘alesl‘.replace(‘l‘, ‘L‘, 1)) # 将原字符串中的内容使用新的字符来代替,1代表代替其中的几个字符 print(‘alesl‘.rfind(‘8‘)) # 从左往右查找返回靠右侧的所查找的字符的索引,查找不到返回-1 print(‘alex lil‘.split(‘l‘)) # 将字符串按照空格(默认)分割 print(‘alex lil‘.splitlines()) # 将字符串按照换行分割 print(‘alex li‘.swapcase()) # 字符全部转换成大写 print(‘ales li‘.title()) # 字符转换成标题输出,每个单词大写 print(‘lex li‘.zfill(50)) # 不够用0填充
4 字典操作
4.1 字典的语法
info = { ‘stu1101‘: ‘TengLan Wu‘, ‘stu1102‘: ‘LongZe Luola‘, ‘stu1103‘: ‘XizoZe Maliya‘ }
字典的特性:
字典是无序的并且关键字必须是唯一的
4.2 增加
info[‘stu1104‘] = ‘CangjingKong‘ # 字典增加
4.3 修改
info[‘stu1101‘] = ‘武藤兰‘ # 字典修改
4.4 删除
del info[‘stu1101‘] # 字典删除 info.pop(‘stu1102‘) # 字典删除 info.popitem() # 随机删除一个
4.5 字典查询
info.get(‘stu1103‘) #安全获取,没有的话返回none info[‘stu1101‘]
4.6 字典合并
b = { ‘stu1104‘: ‘xiaojignzi‘, ‘stu1106‘: ‘xiaojunzi‘ } info.update(b) # 两个字典合并,如果info中有的元素,则修改,如果没有,则添加
4.7 字典转换成列表
print(info.items()) # 字典转换成列表
4.8 字典的初始化
c = dict.fromkeys([6, 7, 8], [1, {‘name‘: ‘alex‘}, 444]) # 初始化字典 c[7][1][‘name‘] = ‘Jack‘ #注意:三个占用同一个内存,一个修改全部修改 # {8: [1, {‘name‘: ‘Jack‘}, 444], 6: [1, {‘name‘: ‘Jack‘}, 444], 7: [1, {‘name‘: ‘Jack‘}, 444]}
4.9 判断是否在字典中
‘stu1103‘ in info
4.10 字典中有该元素不做操作,没有则添加
info.setdefault(‘stu1103‘, ‘baiduyun‘) # 如果没有该元素,则添加,有则不做操作
4.11 字典的遍历
for i in info: # 字典的循环,i返回字典的索引,速度快,推荐 print(i, info[i]) for k, v in info.items(): #第二种方法,不推荐 print(k, v)
5. 购物车实例
product_list = [ (‘iphone‘, 5800), (‘mac‘, 9800), (‘Bike‘, 800), (‘Watch‘, 10600), (‘coffee‘, 31), (‘alex python‘, 120), ] shopping_list = [] salary = input("Input your salary:") if salary.isdigit(): salary = int(salary) while True: for index, item in enumerate(product_list): print(index, item) user_choice = input("选择要买嘛?>>>:") if user_choice.isdigit(): user_choice = int(user_choice) if user_choice < len(product_list) and user_choice >= 0: p_item = product_list[user_choice] if p_item[1] <= salary: shopping_list.append(p_item) salary = salary - p_item[1] print("Add %s into shopping cart, your current balance is %d" % (p_item, salary)) else: print(‘033[41;lm你的余额只剩下[%s]啦,还没个毛线 33[Om‘ % salary) else: print(‘product code [%s] is not exitst!‘ % user_choice) elif user_choice == ‘q‘: print(‘-------shopping list---------‘) for p in shopping_list: print(p) print("your current balance:", salary) exit() else: print(‘invalid option‘)
6. 三级菜单实例
data = { ‘北京‘: { ‘昌平‘: { ‘沙河‘: [‘lodboy‘, ‘test‘], ‘天通苑‘: [‘链家地产‘, ‘我爱我家‘], }, ‘朝阳‘: { ‘望京‘: [‘奔驰‘, ‘陌陌‘], ‘国贸‘: [‘CICC‘, ‘HP‘], ‘动直门‘: [‘Advent‘, ‘飞信‘], }, ‘海定‘: { }, }, ‘山东‘: { ‘德州‘: {}, ‘青岛‘: {}, ‘济南‘: {}, }, ‘广东‘: { ‘东莞‘: {}, } } exit_flag = False while not exit_flag: for i in data: print(i) choice = input(‘选择进入1>>‘) if choice in data: while not exit_flag: for i2 in data[choice]: print(‘ ‘, i2) choice2 = input(‘选择进入2>>‘) if choice2 in data[choice]: while not exit_flag: for i3 in data[choice][choice2]: print(‘ ‘, i3) choice3 = input(‘选择进入3>>‘) if choice3 in data[choice][choice2]: for i4 in data[choice][choice2][choice3]: print(‘ ‘, i4) choice4 = input(‘最后一层‘) if choice4 == ‘b‘: pass # 什么都不做 elif choice4 == ‘q‘: exit_flag = True elif choice3 == ‘b‘: break elif choice3 == ‘q‘: exit_flag = True elif choice2 == ‘b‘: break elif choice2 == ‘q‘: exit_flag = True elif choice == ‘b‘: break elif choice == ‘q‘: exit_flag = True
以上是关于Python列表,字典,元组,字符串操作的主要内容,如果未能解决你的问题,请参考以下文章