Python学习之路day01——003列表(类似JAVA中的数组)
一、列表
列表中可以将String long int char Inttger float 等数据类型单独或混合使用,在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素 ;
1、创建数组
cars = ['bmw',123,'ff91','hafu']
print(cars)
print(cars[0])
print(cars[-1])
输出结果: ['bmw', 123, 'ff91', 'hafu'] ; bmw ;hafu
2、向列表中添加元素
cars.append('honda')
3、向列表中插入元素
car.insert(0, 'ducati')
4、从列表中删除元素
a、方法一 :del car[0]
b、方法二:car.pop() 表示从尾部删除元素 car.pop(2) 删除列表中2号位置的元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle
输出结果:['honda', 'yamaha', 'suzuki'] ; ['honda', 'yamaha'] ;suzuki
#cars.pop() 即是表示被删除的元素,本题目中值得就是suzuki ,因此我们是可以使用这个方法进行一些操作的
c、方法三:remove() 删除数组中制定内容
car.remove(123) 即是表示直接删除 “123” 这个元素
5、列表元素的排序
a、sort() 永久性排序,即是按字母顺序或者数字顺序升序排序,完成之后再也无法恢复
ars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
注:print(cars.sort()),是无意义的,且会报错的 ;数字和字符串是不能同时排序的
输出结果:['audi', 'bmw', 'subaru', 'toyota']
b、sort(reverse=True ),是sort()排序的逆向排序,当想按照降序排序的时候,在括号里面传入reverse=True参数即可
cars.sort(reverse=True)
print(cars)
['toyota', 'subaru', 'bmw', 'audi']
c、使用函数 sorted()对数组进行临时排序
代码:
结果:
d、反转列表 reverse() 永久性反转数组
print(cars)
cars.reverse()
print(cars)
结果:
['eodi', 'bmw', '123', 'ff91', 'hafu', 'ibm']
['ibm', 'hafu', 'ff91', '123', 'bmw', 'eodi']
6、数组的长度 len(cars)
print(len(cars))
二、列表的操作
1、遍历列表
“for magician in magicians: ”,这行代码让Python获取列表magicians中的第一个值('alice'),并将其存储到变量magician
中。接下来, Python读取下一行代码。此中的magician是一个临时变量,当for循环执行完,该临时变量也被系统回收
注意:for循环中的语句的缩进用法,谨记!!不缩进的情况,系统会报错:IndentationError
三、数字(int Inttger等等)列表的常见
1、使用range()和list()创建列表
2、数字数组的统计方法,min(digits) max(digits) sum(digits)
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
3、创建一个列表,其中包含前 10个整数(即1~10)的平方
方法一:
squares = [value**2 for value in range(1,11)]
print(squares)
方法二:
squares = []
for value in range(1,11):
squares.append(value**2)
方法三:
squares = []
for value in range(1,11):
square = value**2
squares.append(square)
print(squares)
4、数组切片
代码:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
print(players[:4])
print(players[2:])
print(players[-3:])
结果:
['charles', 'martina', 'michael']
['charles', 'martina', 'michael', 'florence']
['michael', 'florence', 'eli']
['michael', 'florence', 'eli']
5、数组的遍历切片
for player in players[:3]:
print(player.title())
结果:
Charles
Martina
Michael
6、数组的复制
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players)
copy_players =players[:]
print(copy_players)
结果:
['charles', 'martina', 'michael', 'florence', 'eli']
['charles', 'martina', 'michael', 'florence', 'eli']
注意一:此方法是复制的palyers中的元素到copy_palyers中去
注意二:else_players = players 所表达意思,将players的值赋给else_players,并没有实现元素的复制,
仅仅是else_players地址指针指向了players的地址(并不是players中的值的地址),因此当players修改
之后,else_players也会跟着修改
注意三:当一个简单变量之间等号赋值的情况效果又不一样了,当name1变更过后,name2是不会跟随变更,
因为name2指向的是name1中所储存的值的地址
代码:
name1= "Joker"
name2=name1
print(name1)
print(name2)
name1="frunk"
print(name1)
print(name2)
结果:
Joker
Joker
frunk
Joker