Python基础——列表

旧城冷巷雨未停 提交于 2021-02-19 05:49:52

字符串列表

说明:

列表相当于其他语言的数组。可以用以下两种方式定义列表:

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
View Code

函数:

  • 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将列表转换成元组

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!