Python基础知识:列表
1、pop(i)删除列表任意位置元素,并继续使用它,如果括号为空,默认删除末尾
#pop()函数 guests=['Liming','Liuhan','Hanjieming'] for guest in guests: print("I want to invite "+guest+" to have dinner with me.") break_man=guests.pop(1) print(break_man.title()+" can't keep the appointment.") print(guests)
2、insert(位置,值)列表中按位置和值添加元素
#insert(位置,值) new_guest="Hutian" guests.insert(1,new_guest) for guest in guests: print("I want to invite "+guest+" to have dinner with me.") print("\nI find a bigger table.\n") guests.append("Xiaxue") #append()从末尾插入列表 print(guests)
3、del 删除列表中的任意元素
del guests[0] print(guests)
4、切片:输出列表的一部分
#输出列表的一部分 students=['xiaoming','liuxing','huyu','huangniu','qiaogu'] print(students[:3])#前三个 print(students[3:])#从第四个到最后 print(students[-3:])#后三个 print(students[1:3])#第二个到第三个 #for循环,输出前三名学生的名字 print("\nThe first three students is:") for student in students[:3]: print(student.title())
5、sort()永久性排序;sorted()临时性排序
week_scores=['52','48','88','75','90'] print(sorted(week_scores)) week_scores.sort(reverse=True)#倒序排列 print(week_scores) week_scores.sort(reverse=False)#升序排列 print(week_scores)
6、reverse()倒着打印列表,只是翻转列表,并未排序
week_scores.reverse() print(week_scores)
7、[:]使用切片复制整个列表
month_scores=week_scores[:] print(month_scores)
8、len()确定列表长度,len可以求任何东西的长度
print(len(week_scores))
9、元组(tuple)内的元素不可修改,只能重新赋值
#元组 menu=('noodles','rice','steak','coke','bread') for food in menu: print(food) new_menu=('noodles','rice','steak','coke','milk') for new_food in new_menu: print("\n",new_food)
10、list(range(1,5))创建数值列表
list(range(1,11,2))按指定步长创建数值列表,输出前十个奇数列表
#创建一个1-5的数值列表 numbers=range(1,5) print(list(numbers)) #按指定步长创建数值列表 even_numbers=list(range(1,11,2)) print(even_numbers)
11、(**)两个星号表示乘方运算
#乘方运算 squares=[] for value in range(1,11): squares.append(value**2) print(squares) print(min(squares))#求最小值 print(max(squares))#求最大值 print(sum(squares))#求数值总和
12、列表解析:将for循环和创建新元素的代码合并为一行,并自动添加到列表
#将前10个数的平方依次加入列表 squares=[value**2 for value in range(1,11)] print(squares)
13、count()统计个数和index()返回索引,判断列表中是否存在一个值,并替换它
#count()统计个数和index()索引 number = [10,22,33,10] print(10 in number) if 10 in number: num_of_ten=number.count(10)#返回列表中10的个数 print("[%s] 10 is/are in number."%num_of_ten)#判断列表中有几个指定的值 #替换列表中的所有10 for i in range(num_of_ten): ten_index=number.index(10)#返回索引 number[ten_index]=10000 print(number)
14、copy列表,修改原表和新表的值,互不影响;
列表中嵌套的列表只是一个地址,无论修改原列表中还是复制列表中的嵌套列表,嵌套的列表中的
值都会被改变。如果想改变嵌套列表中的值时,两个列表互不影响,就要使用函数deepcopy()
#调出copy库 import copy number=[10,22,56,[33,10,45],99,34] number2=number.copy() #普通copy number[1]=200 number2[1]=500 number[3][0]='22' number2[3][1]='11' print(number) print(number2) #深度copy,完全复制嵌套列表中的数值,两个列表互不影响 number3=copy.deepcopy(number) number[3][0]='aaa' number3[3][1]='jjjj' print(number) print(number3)
15、extend()扩展列表
#将括号内的列表加到第一个列表末尾 num=[1,2] num2=[1,2,3] num.extend(num2) print(num)
16、enumerate()以枚举的方式打印列表的下标和元素
#枚举,返回索引和值 a = ['alex','alice','james'] for index,i in enumerate(a): print(index,i)
17、删除列表中的重复值
#第一种方法,集合set(),顺序会变 numbers = [11,22,6,13,6,11,58,22] numbers2 = list(set(numbers) ) print(numbers2) #第二种集合法,按照原来列表的索引重新排序 numbers2 = list(set(numbers) ) numbers2.sort(key=numbers.index) print(numbers2) #第三种方法保留原来的顺序,从前往后删 numbers = [11,22,6,13,6,11,58,22] for i in numbers: if numbers.count(i) > 1: numbers.remove(i) print(numbers)
18、练习题:删除列表中重复3次及以上的数值
list=[1,1,1,2,2,2,3,3,4,4] for i in list: if list.count(i)>2: list.remove(i) print(list)
19、练习题:将一个列表中重复3次以下的数值插入到另一个列表中,且不能重复
list=[1,1,1,2,2,2,3,3,4,4] list2=[] for i in list: if list.count(i) < 3: if i not in list2: list2.append(i) print(list2)
20、练习题:for循环猜年龄
#for循环练习 age=26 counter=0 for i in range(10): print("--counter:",counter) if counter <3: guess_number=int(input("your guess number:")) if guess_number==age: print("Congretulations,you got it!") break elif guess_number>age: print("Think smaller.") else: print("Think bigger.") else: continue_confirm=input("do you want to try continue:") if continue_confirm=="y": counter=0 continue else: break counter=counter+1