ages1 =[12,23,34,16,17,18,19]
ages2 =[34,45]#拼接的方式
age3 = ages1 + ages2
print(age3)#乘法操作
age4 = ages2*3print(age4)>>>判断一个元素是否在一个列表中
if17in ages1:print("True")#截取列表的一部分#列表截出来的一定是列表
ages1 =[12,23,34,16,17,18,19]print(ages1[:2])print(ages1[::])print(ages1[::-1])#二维列表
data1 =[[1,2,3],[4,5,6],[7,8,9]]#取出二维列表的某个值
res=data1[0][1]# 三维列表
data2 =[[[1,2,3],[4,5],[6,7]],,]>>>将列表中的一个元素大写:
lst =["alex","gay","wusir",["范冰冰","李冰冰",[1,"火锅","ritian","凤爪"],"王冰冰"]]#print(lst[3][2][1]) # 火锅
lst[3][2][2]= lst[3][2][2].upper()#前面的是位置,后面的是改变后的值#注意找到的是一个字符串,字符串不可变类型,所以要让它改变,需要重新放回去print(lst)
lst[3][2][0]= lst[3][2][0]+99print(lst)#叫降维操作>>>将list=["渡我被身子","丽日御茶子","绿谷出久"] 变成 "渡我被身子_丽日御茶子_绿谷出久":
s =''for i in li:
s = s + i +'_'print(s[:-1])#打印时,最后一个不要打印#print(sum.strip("_"))
遍历list的方式
方式1:列表是可迭代对象,可以直接用forfor i in names:print(i)
方式2:# i 表示的索引for i inrange(len(names)):
name = names[i]print(name)
方式3:enumerate(枚举)
# index 表示索引,# i 表示元素值for index,i inenumerate(names):print("names[%d] = %s"%(index,i))#输出结果:
names[0]=马蓉
names[1]=白百合
names[2]=芙蓉姐姐
names[3]=凤姐
names[4]=金三胖胖
>>>题目:取出二维列表data=[[1,2,3],[4,5,6],[7,8,9]] 中所有的值
data=[[1,2,3],[4,5,6],[7,8,9]]
line_num=0while line_num<len(data):
colum_num =0while colum_num<len(data[line_num]):print(data[line_num][colum_num])
colum_num+=1
line_num+=1#用for循环解决for i in data:for j in i :print(j,end="")#列表for可以用 el element“元素”
枚举 (enumerate)
lst =["纯妃","娴妃","令妃","韩妃","各种妃"]for index, el inenumerate(lst,1):print(index)print(el)#第二个参数,表示从几开始,省略表示从0开始!#字典遍历的 dic.items() 和 enumerate 是一样的
>>>将敏感内容替换为“*”号
li =["苍老师","东京热","武藤兰","波多野结衣"]
user_input=input("please enter content:").strip()
li2=[]for re in li:if re in user_input:#判断多个时,必须要用 in
user_input=user_input.replace(re,"*"*len(re))#要替换的是user_input
li2.append(user_input)print(li2)
>>>将多层列表里的内容全部打印出来,有大写变小写,保留双引号
li =[1,3,4,"alex",[3,7,8,"TaiBai"],5,"RiTiAn"]for i in li :iftype(i)==list:for el in i:iftype(el)==str:#只有字符串才能用print(f'"{el.lower()}"',end=" ")else:print(el,end=" ")eliftype(i)==str:print(f'"{i.lower()}"',end=" ")else:print(i,end=" ")#格式化输出
格式:f"{输入内容}"
f'"{输出内容}"' ,外层的单双引号可以按需求互换
>>>用户输入:姓名_成绩,求出所有的成绩的平均成绩
li=[]whileTrue:
user_input =input("please enter content like 'min_100'and enter 'Q'quit:")if user_input=="Q".lower():print("enter over")breakelse:
res=user_input.split("_")
li.append(res[1])#循环添加切割出来的第二元素(成绩)sum=0for el in li:sum+=int(el)print(sum/len(li))
>>>敲7游戏,遇到7或者7的倍数则用“哐”代替
li=[]
n=int(input("please enter a num:").strip())for i inrange(n+1):if i!=0and i %7==0:
li.append("哐")continue
li.append(i)print(li)
>>>给出一个纯数字列表. 请对列表进行排序(升级题).
思路:1. 完成a和b的数据交换. 例如, a =10, b =24 交换之后, a =24, b =102. 循环列表. 判断a[i]和a[i+1]之间的大小关系, 如果a[i]比a[i+1]大. 则进行互换.
循环结束的时候. 当前列表中最大的数据就会被移动到最右端.3. 想一想, 如果再次执行一次上面的操作. 最终第二大的数据就移动到了右端. 以此类推.
如果反复的进行执行相应的操作. 那这个列表就变成了一个有序列表.#这个算法可以进行优化.#冒泡排序,
lst =[5,1,7,2,6,4,5,6]
count =0while count <len(lst):# 控制次数
i =0while i <len(lst)-1:if lst[i]> lst[i +1]:
lst[i], lst[i +1]= lst[i +1], lst[i]
i = i +1
count = count +1print(lst)#for来做:for j inrange(len(li)):for i inrange(len(li)-1):if li[i]>li[i+1]:
li[i], li[i +1]= li[i +1], li[i]print(li)