# list 列表:只要声明 [] 就是一个列表,可以放字符串,数字
# names = [\'lily\',\'ironman\',\'jass\',\'hok\',\'jim\']
# 从左到右 0 1 2 3 4
# 从右到左 -5 -4 -3 -2 -1
1 #声明 2 names=[\'lily\',\'ironman\',\'jass\',\'hok\',\'jim\'] 3 computer_brands=[ ] 4 #地址 5 print(id(names)) 6 print(id(computer_brands)) 7 #元素获取使用:下标/索引 8 print(names[0]) 9 print(names[1]) 10 #获取最后一个元素 11 print(names[-1]) #方法一 12 print(len(names)) #方法二 13 print(names[len(names)-1]) #方法三 14 #获取第一个元素 15 print(names[-5]) 16 #列表循环遍历 17 for name in names: 18 print(name) 19 #查询列表 20 for name in names: 21 if name==\'lily\': 22 print(\'有lily\') 23 break 24 else: 25 print(\'没有找到lily\') 26 #查询列表的简便方法 27 if \'lily\' in names: 28 print(\'有lily\') 29 else: 30 print(\'没有lily\')
#list 列表:增删改查
1 brands=[\'hp\',\'dell\',\'lenovo\',\'华为\',\'thinkpad\',\'mac\',\'神州\'] 2 #改 3 #知道位置时 4 print(brands) 5 brands[-1]=\'hasee\' #使用下标找到,赋值 6 print(brands) 7 #不知道位置时 8 for i in range(len(brands)): 9 if \'华为\' in brands[i]: 10 brands[i]=\'HUAWEI\' 11 break 12 print(brands) 13 14 #删除 del delete缩写 15 del brands[2] 16 print(brands) 17 #只要是 hp lenovo 都删除 18 l=len(brands) 19 i=0 20 while i<l: 21 if \'hp\' in brands[i] or \'mac\' in brands[i]: 22 del brands[i] 23 l-=1 24 i+=1 25 print(brands)
1 if \'good\' == \'good\': # == 比较的是内容 2 print(\'相等\') 3 if \'good\' in \'good\': # in 相等或包含,应用在字符串判断中,也用在列表中 4 print(\'相等\')
# if ... in \'abc\' : 或 if ... \'a\' in [\'a\',\'b\',\'c\']: 让in 作为一个判断的条件表达式
# for ... in 循环遍历 ,for 变量 in 字符串|列表: in 只作为循环条件
1 i=1 2 if \'good\' in [\'good\',\'goods\',\'cvb\',\'kkk\',\'word\',\'words\']: 3 print(\'包含……\',i) 4 i+=1
1 word = [\'hello\',\'good\',\'apple\',\'world\',\'digit\',\'alpha\'] 2 w=input(\'请输入一个单词:\') 3 for word in words: #判断内容是否在列表存在 4 if w in word: #判断字符串w有没有出现在word 5 print(\'存在此单词\') 6 break
#列表的切片
1 list=[\'杨超越\',\'佟丽娅\',\'杨幂\',\'赵丽颖\',\'刘亦菲\',\'快快\',100,99.9] 2 print(list1) 3 print(list[3]) 4 print(list1[3:6]) #将截取的结果保存到一个列表中 5 print(list1[-3:-1]) 6 print(list1[::2]) #步长 7 print(list1[-5:-1:2]) 8 9 #反方向 10 print(list1[-1::-1])
#列表元素的添加
#临时的小数据库:list
#列表的函数使用:append() extends() insert()
1 girls=[] 2 while True: 3 name=input(\'请输入名字:\') 4 if name==\'quit\': 5 break 6 grils.append(name) #append() 末尾追加 7 print(grils)
#extend() 类似列表的合并
1 nams=[] 2 name=input(\'请输入名字:\') 3 girls.extend(names) 4 print(girls)
#符号 + 也可以用于列表的合并
1 girls=girls+names 2 print(girls)
#insert 从指定位置插入元素
1 [\'杨幂\',\'孙俪\',\'王丽坤\',\'表达\'] 2 # 0 1 2 3 3 girls.insert(1,\'泰勒\') 4 print(girls)
#产生10个不同的随机数保存到列表中
1 import random 2 random_list=[ ] 3 for i in range(10): 4 ran=random.randint(1,20) 5 if ran not in random_list: 6 random_list.append(ran) 7 print(random_list)
#for 循环产生的随机数不一定保证是10个,用可控的while循环更好
1 import random 2 random_list=[] 3 i=0 4 while i<10: 5 ran=random.randint(1,20) 6 if ran not in random_list: 7 random_list.append(ran) 8 i+=1 9 print(random_list)
#找出列表中的最大值,最小值,求和
1 max_value=max(random_list) 2 print(max_value) 3 min_value=min(random_list) 4 print(min_value) 5 s=sum(random_list) 6 print(s)
#自定义求最大值,最小值
1 print(\'-----------------------------------------------------------\') 2 maxvalue=random_list[0] 3 minvalue=random_list[0] 4 for value in random_list: 5 if value>maxvalue: 6 maxvalue=value 7 if value<minvalue: 8 minvalue=value 9 print(maxvalue,minvalue)
#列表元素排序 ; ascending order,升序 ,descending order,降序
1 new_list=sorted(random_list) 2 print(new_list) 3 new_list=sorted(random_list,reverse=True) 4 print(new_list)
#字符串中使用的符号:+ * in not in is not is []
#列表支持的符号:+ *
1 l1=[1,2,4,5,6] 2 l2=[6,7,8,9,2] 3 l3=l1+l2 4 print(l3) 5 l4=[1,2,3]*3 6 print(l4) 7 result=3 in [1,2,3,5,6] 8 print(result) 9 result=[3] in [1,2,3,4,5] 10 print(ressult) 11 result=[3] in [1,2[3],4,5] 12 print(result)
#列表中的元素:整型,字符串,浮点型,列表,元组,字典,对象
1 result=[3,4] in [1,2,[3,4,5],7] 2 print(result) 3 l5=[[1,2,3],[4,5,5],[6,7,8]] 4 print(len(l5)) 5 e=l5[2] 6 print(e,type(e)) 7 print(l5[1][2])
#类型转换:list() 将指定的内容转为列表,可迭代的内容可以放到list中
1 s=\'ascdf\' 2 result=list(s) #字符串是可迭代的 3 print(result) 4 # iterable 可迭代的 , 可以for ...in 里面循环就是可迭代的 5 print(list(range(1,10,3))) #range() 是可迭代的 6 print(list(10)) #int obj is not iterable
#将字符串中的大写改为小写,小写改为大写,数字不变
1 a=\'zxccvbnWERTRUI1234534456\' 2 s=\'\' 3 for i in a: 4 if i.isupper(): 5 s+=i.lower() 6 elif i.islower(): 7 s+=i.upper() 8 else: 9 s+=i 10 print(s)
#连接字符串:join()
1 x=\'abc\' 2 y=\'wer\' 3 z=[\'h\',\'j\',\'k\'] 4 print(x.join(y)) 5 print(x.join(z))
#字符串函数:split()
#列表函数:只有通过列表才可以调出来的函数
添加:append() extend() insert()
排序:list.sort() sorted(list)
次数:count()
删除: del() list[index] remove() pop() clear()
remove():删除列表第一次出现的元素,如果没有找到要删除的元素则报出异常
pop(): 弹栈,删除列表中的最后一个元素,返回值是删除的那个元素,可以指定下标删除index
clear() : 清除列表
reverse():改变了列表的位置结构
队列:先进先出 FIFO first in first out
栈:先进后出
#列表的删除
1 hotpot_list=[\'张亮麻辣烫\',\'吖哺吖哺\',\'杨国福麻辣烫\',\'海底捞\'] 2 result=hotpot_list.remove(\'吖哺吖哺\') 3 print(result) 4 print(hotpot_list) 5 result=hotpot_list.pop() 6 print(result) 7 print(hotpot_list) 8 result=hotpot_list.clear() 9 print(result) 10 print(hotpot_list) 11 hotpot_list.reverse() 12 print(hotpot_list)
#列表的排序
1 ls=[7,4,5,6,3,9] 2 ls.sort() 3 print(ls) 4 ls.sort(reverse=True) #升序 5 print(ls) 6 print(ls.count(7))
#1.选择人物 2.购买武器金币 3.打仗赢金币 4.选择删除武器 5.查看武器 6.退出游戏
1 import random 2 print(\'*\'*45) 3 print(\'\t欢迎来到王者荣耀\') 4 print(\'*\'*45) 5 role=input(\'请选择游戏人物:\n1.鲁班 2.后羿 3.李白 4.孙尚香 5.貂蝉 6.诸葛亮 \n\') 6 coins=10000 7 weapon_list=[] 8 9 print(\'欢迎{}来到王者荣耀,当前金币是:{}\'.format(role,coins)) 10 11 while True: 12 choice=int(input(\'\n请选择: \n 1.购买武器\n 2.打仗 \n 3.删除武器 \n 4.查看武器 \n 5.退出游戏\n\')) 13 if choice==1: 14 print(\'欢迎进入武器库:\n\') 15 weapons=[[\'饮血剑\',100],[\'屠龙刀\',300],[\'破晓\',600],[\'末世\',400],[\'碎星锤\',500]] 16 for weapon in weapons: 17 print(weapons) 18 #提示输入要购买的武器 19 weaponname=input(\'请输入要购买的武器:\') 20 #判断:原来没有买过武器 21 if weaponname not in weapon_list: 22 #判断: 输入的武器名是否在武器库 23 for weapon in weapons: 24 if weaponname == weapon[0]: 25 if coins>=weapon[1]: 26 coins-=weapon[1] 27 weapon_list.append(weapon[0]) 28 print(\'{}购买{}成功\'.format(role,weaponname)) 29 break 30 else: 31 print(\'金币不足,赶快打仗挣金币.\') 32 break 33 else: 34 print(\'输入的武器名有误.\') 35 else: 36 print(\'已经拥有此武器\') 37 38 elif choice==2: 39 print(\'正在进入战场…………………………\') 40 if len(weapon_list)>0: 41 print(\'{}拥有的武器如下:\'.format(role)) 42 for weapon in weapon_list: 43 print(weapon) 44 45 while True: 46 weaponname=input(\'请选择:\') 47 if weaponname in weapon_list: 48 #进入战争状态 49 ran1=random.randint(1,20) 50 ran2=random.randint(1,20) 51 if ran1>ran2: 52 print(\'此局对战胜利\') 53 elif ran1<ran2: 54 print(\'此局对战失败\') 55 coins+=200 56 print(\'金币:\',coins) 57 else: 58 print(\'此局对战平局\') 59 break 60 else: 61 print(\'选择的武器不在武器库,重新选择\') 62 else: 63 print(\'目前没有武器不能打仗,请前去购买\') 64 65 elif choice==3: 66 #删除武器 67 if len(weapon_list)>0: 68 print(\'{}拥有的武器如下:\'.format(role)) 69 for weapon in weapon_list: 70 print(weapon) 71 print(\'选择要删除的武器………………\') 72 while True: 73 weaponname=input(\'输入要删除的武器名:\') 74 if weaponname in weapon_list: 75 #删除武器 76 weapon_list.remove(weaponname) 77 #归还金币 78 for weapon in weapons: 79 if weaponname==weapon[0]: 80 coins+=weapon[1] 81 break 82 break 83 else: 84 print(\'武器名输入有误,重新输入\') 85 else: 86 print(\'没有武器 ,你删除个屁\') 87 88 elif choice==4: 89 #查看自己武器库 90 print(\'{}拥有的武器如下:\'.format(role)) 91 for weapon in weapon_list: 92 print(weapon) 93 print(\'金币总数:\',coins) 94 95 elif choice==5: 96 anwer=input(\'确定要离开王者荣耀吗(yes/no)\') 97 if anwer==\'yes\': 98 break 99 else: 100 print(\'输入错误,请重新选择\')