Python学习----第四章--操作列表

1.for循环遍历列表

pets=['cat','dog','pig','tiger']   #定义一个宠物列表
for pet in pets:                   #for循环遍历pets列表,pet为存储列表中每个值的临时变量
    print(pet)                     #语句缩进表示为for循环内的语句,每次循环执行,不断输出pet的值
                                   #>>>cat    dog     pig    tiger    #输出列表中的四个值
    print("i love "+pet+" very much!\n")              #语句缩进,循环执行
print("\nthis pet is good!")                          #语句未缩进,只执行一次
                                   
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                                 
cat
i love cat very much!

dog
i love dog very much!

pig
i love pig very much!

tiger
i love tiger very much!

this pet is good!                   #因为这句语句未缩进,所以只在最后执行一次
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#使用for循环时不要忘记for语句后的冒号“:”,以及语句缩进!!!

2.range()函数

   2.1.Python中使用range()函数可以轻松生成一系列数字。例如:

for value in range(1,5):            
    print(value)
#>>>>>>>>>>>>>>>>>>>>>>>
1
2
3
4

注意这里的range(1,5)只是打印1~4,并不会打印5。range()函数让Python从你指定的第一个值开始数,并到达你指定的第二个值后停止,因此输出不包含第二个值。如果要打印数字1~5,则需要使用range(1,6).

如果range()中只有一个指定的值,则从0开始生成到该值前一个值后停止

number=list(range(3))           #range()只指定一个值3,相当于range(0,3)
print(number)

#>>>>>>>>>>>>>>>>>>>>>>>
[0, 1, 2]

使用rang()还可指定步长:

for num in range(1,50,10):             #步长为10   #从1开始加10,直到50为止
    print(num)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1
11                                 #1+10
21                                 #11+10
31                                 #21+10
41                                 #31+10
                            #41+10已经超过50,所以结束!

 

  2.2使用range()创建数字列表

要创建数字列表可以使用函数list()将range()的结果转换为列表,如果将range()作为list()的参数,输出将为一个数字列表。

number=list(range(1,5))         #range(1,5)作为list()中的一个参数
print(number)
#>>>>>>>>>>>>>>>>>>>>>>
[1, 2, 3, 4]

打印1~10内的偶数:

number=list(range(2,11,2))         #从2开始,不断加2,直到超过11 
print(number)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[2, 4, 6, 8, 10]

打印1~10的平方:

number=[]                                   #先定义一个空列表
for num in range(1,11):                     #遍历1~10
    number.append(num**2)                   #每遍历一个值就往number列表里添加一个它的平方
print(number)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

对数字列表执行简单统计:

number=[1,2,3,4,5]          #定义一个数字列表
print(min(number))          #输出它的最小值
print(max(number))          #输出它的最大值
print(sum(number))          #输出它的总和

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1                           #最小值
5                           #最大值
15                          #总和

列表解析:

#1~10的平方数
number=[]                                   #先定义一个空列表
for num in range(1,11):                     #遍历1~10
    number.append(num**2)                   #每遍历一个值就往number列表里添加一个它的平方
print(number)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]


#列表解析:
number=[num**2 for num in range(1,11)]       #将上述代码简化一句
print(number)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3.使用列表的一部分(切片)

  3.1.创建切片,可以指定要使用第一个元素和最后一个元素的位置(索引),与range()一样python在到达指定的第二个索引前面的元素后停止。例如:

abc=['A','B','C','D','E']
print(abc[0:2])             #输出0~2号位置的元素值,因为到2号位置前面一个元素后停止,所以输出A、B

#>>>>>>>>>>>>>>>
['A', 'B']


abc=['A','B','C','D','E']
print(abc[2:5])             #提取第2~4个元素

#>>>>>>>>>>>>>>>>>
['C', 'D', 'E']

如果没有起始索引,python将从头开始提取,,,如果没有终止索引,python将提取从起始索引到列表末尾的所有元素。

abc=['A','B','C','D','E']
print(abc[:2])               #不指定起始索引,只指定终止索引

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
['A', 'B']



abc=['A','B','C','D','E']
print(abc[2:])               #不指定终止索引,只指定起始索引

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
['C', 'D', 'E']


#此外,python还可以使用负数,倒数提取:
abc=['A','B','C','D','E']
print(abc[-2:])              #起始元素为-2,将提取倒数第二个元素后的所有元素
print(abc[:-2])              #不设置起始元素,将从头提取到列表的倒数第二个元素前一个元素

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
['D', 'E']                   #提取倒数第二个元素后的所有元素
['A', 'B', 'C']              #从头提取到列表的倒数第二个元素前一个元素

  3.2.遍历切片

#使用切片遍历列表的前三个元素
abc=['A','B','C','D','E']
for a in abc[0:3]:
    print(a)

#>>>>>>>>>>>>>>>>>>>>>>>>>>
A
B
C

 3.3.复制列表

复制列表,可创建一个包含整个列表的切片,方法是同时省略起始和终止索引"[ : ]"。这可以让python创建一个始于第一个元素,终止与最后一个元素的切片,即复制整个列表。例如:

list_one=[1,2,3,4,5,6]           #创建列表list_one
list_two=list_one[:]             #list_two执行复制list_one操作
list_one.append(7)               #在list_one加入7
list_two.append(8)               #在list_two加入8
print(list_one)
print(list_two)

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[1, 2, 3, 4, 5, 6, 7]            #list_one中加入了数字7
[1, 2, 3, 4, 5, 6, 8]            #list_two中加入了8,,说明这是两个列表,list_two复制成功


--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
#错误示例         #错误示例          #错误示例        #错误示例        #错误示例
list_one=[1,2,3,4,5,6] 
list_two=list_one
list_one.append(7)               #在list_one加入7
list_two.append(8)               #在list_two加入8
print(list_one)
print(list_two)

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[1, 2, 3, 4, 5, 6, 7, 8]         #两个列表都有7,8,这并不是复制列表,而是将list_one与新变量list_two关联起来而已
[1, 2, 3, 4, 5, 6, 7, 8]         #即list_one与list_two都指向的是同一个列表,这并不是复制列表

4.元组

元组使用()圆括号来标识,列表是可以修改的,而元组是不可修改的列表。#元组不可修改 #元组不可修改。例如:

yuanzu=(1,2,3,4)              #创建元组
                        #如果这里输入: yuanzu[0]=5  错误的    #元组不可被修改
print(yuanzu)                 #输出元组中的值
print(yuanzu[0])              #输出元组中0号位置上的值
print(yuanzu[-1])             #输出元组中倒数第一个位置的值

#>>>>>>>>>>>>>>>>>>>>>>
(1, 2, 3, 4)                  #与列表输出带有[]类似,元组输出带有()
1                             #0号位置的值
4                             #倒数第一个位置的值



#遍历元组中的值:              # 与遍历列表一样,也可以使用切片
yuanzu=(1,2,3,4)
for a in yuanzu:
    print(a)
#>>>>>>>>>>>>>>>>>>>>>
1    2   3    4

#遍历切片:
yuanzu=(1,2,3,4)
for a in yuanzu[2:]:
    print(a)
#>>>>>>>>>>>>>>>>>>>>>
3    4

修改元组变量:

元组中的值不可被修改,但可以给存储元组的变量赋值

test=('one','two','three')         #设置元组
print(test)                        #输出元组test
test=(1,2,3)                       #从新给元组test赋值
print(test)                        #输出元组test

#>>>>>>>>>>>>>>>>>>>>>>>>>
('one', 'two', 'three')            #第一次输出元组test中的值
(1, 2, 3)                          #输出从新赋值后的元组test中的值

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值