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

 

posted @ 2018-11-08 14:37  Charlie大夫  阅读(317)  评论(0编辑  收藏  举报