字符串列表
说明:
列表相当于其他语言的数组。可以用以下两种方式定义列表:
name = ['honda', 'yamaha', 'suzuki']
bicycles = list('trek', 'cannondale', 'redline', 'specialized')
列表的索引从0开始,用-1表示最后一项,而-2表示倒数第二项,以此类推例如:
print(name[0]) # 'honda'
print(name[-1]) # 'suzuki'
方法和函数:
方法:
def append(self, p_object): # 无返回值,添加一个对象到最后
""" L.append(object) -> None -- append object to end """
pass
def clear(self): # 无返回值,删除列表中所有项
""" L.clear() -> None -- remove all items from L """
pass
def copy(self): # 返回一个浅复制列表
""" L.copy() -> list -- a shallow copy of L """
return []
def count(self, value): # 返回整数——参数value在列表中的个数
""" L.count(value) -> integer -- return number of occurrences of value """
return 0
def extend(self, iterable): # 无返回值,将参数iterable扩展到原列表中
""" L.extend(iterable) -> None -- extend list by appending elements from the iterable """
pass
def index(self, value, start=None, stop=None): # 返回整数——参数value的第一个索引,如果不存在返回错误ValueError
"""
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
"""
return 0
def insert(self, index, p_object): # 在索引index处,插入值p_object
""" L.insert(index, object) -- insert object before index """
pass
def pop(self, index=None): # 返回索引index的值,默认index取值为列表最后一个索引
"""
L.pop([index]) -> item -- remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
"""
pass
def remove(self, value): # 无返回值,删除列表中第一个值为value的项
"""
L.remove(value) -> None -- remove first occurrence of value.
Raises ValueError if the value is not present.
"""
pass
def reverse(self): # 反转列表中元素的排序
""" L.reverse() -- reverse *IN PLACE* """
pass
def sort(self, key=None, reverse=False): # 排序列表,reverse=True时,返转排序结果
""" L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE* """
pass
函数:
- del:如果知道要删除的元素的索引,可以用del语言删除该元素,与List方法pop(index)的区别在于del语句没有返回值,而pop(index)返回被删除的项
numbers = list((1, 2, 3, 4, 5, 6)) del numbers[2] print(numbers) # 输出 # [1, 2, 4, 5, 6]
numbers = list((1, 2, 3, 4, 5, 6)) number = numbers.pop(2) print(numbers) print(number) # 输出 # [1, 2, 4, 5, 6] # 3
- 函数sorted()排序,sorted(reverse=True)反向排序,与List方法sort()的区别在于,函数sorted()返回一个排序列表,原列表元素依旧,而方法sort()排序的是原列表,无返回值
cars = ['bmw', 'audi', 'toyota', 'subaru'] print(sorted(cars, reverse=True)) print(cars) cars.sort() print(cars) # 输出 # ['toyota', 'subaru', 'bmw', 'audi'] # ['bmw', 'audi', 'toyota', 'subaru'] # ['audi', 'bmw', 'subaru', 'toyota']
- 函数len()返回列表的长度
数值列表
可以使用for循环遍历列表
cars = ['bmw', 'audi', 'toyota', 'subaru']
for car in cars:
print(car.title())
使用函数range()可以生成一系列的数字,例如range(1, 10)将生成1到9之间的数字,注意该系统数字不包括range()最后一个参数所指定的数值。由上可知,C语言中的for(int i = 0; i < 10; i++)
可以改成python中的for index in range(0, 10):
使用range()时,还可以创建步长,例如创建一个以2开始,步长为2的列表
even_numbers = list(range(2,11,2))
print(even_numbers) # [2, 4, 6, 8, 10]
对数值列表可以使用mix,max,sum等函数来计算该列表的最小值、最大值和总和
>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
4
列表解析
可以通过列表解析快速的创建一个需要通过计算而形成的列表,例如包含1~10的平方列表
squares = [value**2 for value in range(1, 11)] # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
注意:for语句后面不要加冒号(:)
切片
要创建切片,可指定要使用的第一个元素和最后一个元素的索引。例如:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3]) # ['charles', 'martina', 'michael']
和range()函数一样,切片处理的元素包含第一个参数指定的索引,不包含第二个参数指定的索引。如果省略第一个参数,表示从头切片,上例也可以表示为players[:3],如果省略第二个参数,表示从第一个参数指定索引开始提取出到列表末尾的所有元素。
也可以使用负数表示从后切片,例如:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:]) # ['michael', 'florence', 'eli']
复制列表
使用同时省略开始索引和结束索引的切片来复制列表。这样将复制出两份独立的列表,如果直接将原列表赋值给新的列表,两个变量将指向同一个列表
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoil')
friend_foods.append('ice sream')
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
# 输出
# My favorite foods are:
# ['pizza', 'falafel', 'carrot cake', 'cannoil']
# My friend's favorite foods are:
# ['pizza', 'falafel', 'carrot cake', 'ice sream']
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods
my_foods.append("cannoil")
print(my_foods)
print(friend_foods)
# 输出
# ['pizza', 'falafel', 'carrot cake', 'cannoil']
# ['pizza', 'falafel', 'carrot cake', 'cannoil']
元组
元组可以看成是只读的列表,元组中的元素一经定义其值将不能改变。元组的定义与列表类似,将中括号改为小括号即可定义元组。
可以使用list将元组转换成列表,使用tuple将列表转换成元组
来源:oschina
链接:https://my.oschina.net/u/4271842/blog/3987860