精华内容
下载资源
问答
  • 列表
    千次阅读
    2021-02-03 04:27:43

    列表

    列表可以存储成组的信息,可以包含几个元素,也可以包含数百万个元素,列表是用方括号来表示的

    定义

    列表由一系列按特定顺序排列的元素组成。元素之间可以没有任何关系。

    通常命名列表使用复数单词,例如:letters、digits、names

    用方括号([])表示列表,并用逗号来分隔其中的元素

    打印列表时,将打印列表的内部表示,包括方括号、引号:

    >>> bicycles = ['trek', 'cannondale', 'redline', 'specialized']

    >>> print(bicycles)

    ['trek', 'cannondale', 'redline', 'specialized']

    >>> a = ["A"]

    >>> print(a)

    ['A']

    >>> a = ["A", 'B', 3]

    >>> print(a)

    ['A', 'B', 3]

    无论列表中的元素,字符串是用单引号还是双引号,直接打印列表时,输出的字符串都是用单引号来表示

    访问列表元素

    列表是有序集合,要访问列表的任何元素,只需要知道该元素的位置或者索引

    方式:列表名称[索引]

    >>> bicycles = ['trek', 'cannodale', 'redline', 'specialized']

    >>> print(bicycles[0])

    trek

    当去访问列表元素时,会返回元素,而不返回 引号 与 方括号,这点与直接打印列表不一样

    列表的索引是从 0 开始的

    通过索引 -1 ,可以访问最后一个列表元素,以此类推,索引 -2 访问倒数第二个列表元素...

    通过索引 -1,可以在不知道列表长度的情况下访问最后的元素,但如果列表是空的,则不能使用 索引-1 去访问

    >>> motors = []

    >>> motors[-1]

    Traceback (most recent call last):

    File "", line 1, in

    IndexError: list index out of range

    修改、添加和删除列表元素

    大多数列表都是动态的

    修改列表元素

    列表名[元素索引] = 新值

    >>> cycles = ['honda', 'yamaha', 'suzuki']

    >>> print(cycles)

    ['honda', 'yamaha', 'suzuki']

    >>> cycles[0] = 'ducati'

    >>> print(cycles)

    ['ducati', 'yamaha', 'suzuki']

    添加列表元素在列表末尾添加元素

    在列表中插入元素

    在列表末尾添加元素 append()

    在列表末尾添加元素的方法是:append()

    >>> cycles.append('123')

    >>> print(cycles)

    ['ducati', 'yamaha', 'suzuki', '123']

    创建一个空列表,使用一系列 append() 添加元素

    >>> motors = []

    >>> motors.append('a')

    >>> motors.append('b')

    >>> motors.append('c')

    >>> print(motors)

    ['a', 'b', 'c']

    在列表中插入元素 insert()

    在列表任何位置添加新元素的方法:insert(索引,值),需要指定新元素的 索引 和 值

    这个方法会将添加位置后面既有的每个元素都右移一个位置

    >>> motors.insert(0, '1')

    >>> print(motors)

    ['1', 'a', 'b', 'c']

    >>> motors.insert(-1, '2')

    >>> print(motors)

    ['1', 'a', 'b', '2', 'c']

    删除列表元素

    可以根据 位置 或 值 来删除列表中的元素del 知道要删除的元素的位置,不返回删除的元素

    pop() 或 pop(索引) 知道要删除元素的位置,会返回删除的元素

    remove() 知道要删除元素的值,会返回删除的元素

    del

    知其位置,可以使用 del 删除

    使用方法:del 列表名[索引]

    >>> print(motors)

    ['1', 'a', 'b', '2', 'c']

    >>> del motors[0]

    >>> print(motors)

    ['a', 'b', '2', 'c']

    使用 del 可删除任何位置处的列表元素,前提是知道元素的索引

    使用 del 语句将元素在列表中删除以后,就无法再访问了

    pop()

    del语句删除后无法继续使用,但pop()删除后可以继续使用它的值,因为它会返回被删除的元素

    pop()方法可删除列表末尾的元素,用一个变量接收,就能接着使用被删除的元素了,但是列表里已经没这个元素了

    >>> poped_motor = motors.pop()

    >>> print(poped_motor)

    c

    >>> print(motors)

    ['a', 'b', '2']

    弹栈后,pop() 返回值是删除的值,所以用一个变量接收,就能接着使用了,如果不接收,其效果与 del 语句删除一样,并且 pop() 也能删除列表中任何位置的元素

    使用方法:pop(索引)

    >>> print(motors)

    ['a', 'b', '2']

    >>> motors.pop(0)

    'a'

    >>> print(motors)

    ['b', '2']

    若从列表中删除的元素不再使用,则使用 del语句

    如果删除元素还要继续使用,则使用 pop(索引) 方法,若没有索引,默认删除栈顶元素

    remove()

    pop() 和 remove() 都返回删除的元素,区别是:

    知道删除元素的索引,使用 pop()

    知道删除元素的值,使用 remove()

    >>> print(motors)

    ['b', '2']

    >>> motors.remove('2')

    >>> print(motors)

    ['b']

    注意:remove() 只删除第一个指定的值,如果要删除的值在列表中出现多次,需要使用循环来判断是否删除了所有这样的值。

    组织列表

    永久性排序

    方法 sort() 永久性地改变了列表元素的排列顺序

    >>> cars = ['b', 'a', 't', 's']

    >>> cars.sort()

    >>> print(cars)

    ['a', 'b', 's', 't']

    sort默认是按字母顺序排列

    若要逆序排列,则要给sort传入参数reverse = True,即 sort(reverse=True)

    >>> cars = ['b', 'a', 't', 's']

    >>> cars.sort(reverse=True)

    >>> print(cars)

    ['t', 's', 'b', 'a']

    若字母有大写

    >>> cars = ['B', 'b', 'C', 'c']

    >>> cars.sort()

    >>> print(cars)

    ['B', 'C', 'b', 'c']

    先排大写字母,再排小写字母

    若还有数字,则先排数字,再排大写字母,最后排小写

    >>> cars = ['B', 'b', 'C', 'c', '1', '2']

    >>> cars.sort()

    >>> print(cars)

    ['1', '2', 'B', 'C', 'b', 'c']

    注意:使用sort()排序后输出时,步骤要分开

    >>> scenics.sort()

    >>> print(scenics)

    # print(scenics.sort())

    第4行那种方式输出结果是 None,只能是把两步分开。

    临时性排序

    方法 sorted() 能够按特定顺序显示列表顺序,同时不影响列表原始列表顺序,是临时性的排序

    >>> cars = ['bmw', 'audi', 'toyota', 'subaru']

    >>> print("original list:")

    original list:

    >>> print(cars)

    ['bmw', 'audi', 'toyota', 'subaru']

    >>> print("the sorted list")

    the sorted list

    >>> print(sorted(cars))

    ['audi', 'bmw', 'subaru', 'toyota']

    >>> print(cars)

    ['bmw', 'audi', 'toyota', 'subaru']

    注意:列表调用函数 sorted() 后,原始列表元素的排列顺序并没有变

    若要按字母逆序输出,也可传入参数 reverse = True

    调用sorted()函数时,参数是 列表 ,reverse=True。这点与调用sort()不一样,列表是作为对象去调用 sort(),参数只有 reverse=True 可选

    >>> sorted(cars)

    ['audi', 'bmw', 'subaru', 'toyota']

    >>> sorted(cars, reverse=True)

    ['toyota', 'subaru', 'bmw', 'audi']

    对列表倒序(不排序)

    reverse() 不会让列表反向顺序排序,而只是倒着排列,是永久性的改变,若想恢复原状,只需再执行一次 reverse()

    >>> print(cars)

    ['bmw', 'audi', 'toyota', 'subaru']

    >>> cars.reverse()

    >>> print(cars)

    ['subaru', 'toyota', 'audi', 'bmw']

    reverse() 与 sort(reverse=True) 虽然都是倒序,但是效果不一样,reverse()不是排序,只是单纯倒着排列列表,而 sort(reverse=True) 会倒序的方式按字母顺序排序列表

    len()

    获取列表的长度

    >>> len(cars)

    4

    索引错误

    IndexError

    >>> motors = ['honda', 'yamaha', 'suzuki']

    >>> motors[3]

    Traceback (most recent call last):

    File "", line 1, in

    IndexError: list index out of range

    当列表为空时,使用 索引-1 会导致错误

    >>> motors = []

    >>> motors[-1]

    Traceback (most recent call last):

    File "", line 1, in

    IndexError: list index out of range

    遍历列表

    for循环

    >>> magicians = ['alice', 'david', 'carolina']

    >>> for magician in magicians:

    ... print(magician)

    ...

    alice

    david

    carolina

    Python每次都从列表中取出一个变量,并将其存入临时变量中

    编写for循环时,用于存储列表中每个值的临时变量,可指定为任何名称。

    for item in list_of_items:

    ...

    注意 for 后面有 :

    使用复数命名列表,使用单数命名临时变量

    >>> magicians = ['alice', 'david', 'carolina']

    >>> for magician in magicians:

    ... print(magician.title() + ", that was a great trick!")

    ...

    Alice, that was a great trick!

    David, that was a great trick!

    Carolina, that was a great trick!

    在 for 语句后面的每一个缩进的代码都是循环的一部分,且对列表中的每个值都会执行一次。

    >>> for magician in magicians:

    ... print(magician.title() + ", that was a great trick!")

    ... print("I can't wait to see your next trick, " + magician.title() + ".\n")

    ...

    Alice, that was a great trick!

    I can't wait to see your next trick, Alice.

    David, that was a great trick!

    I can't wait to see your next trick, David.

    Carolina, that was a great trick!

    I can't wait to see your next trick, Carolina.

    print() 自带换行

    缩进错误

    Python 根据缩进来判断代码行与前一个代码行的关系

    IndentationError忘记缩进

    Python 没有找到期望缩进的代码块时,会报 缩进错误

    >>> magicians = ['alice', 'david', 'carolina']

    >>> for magician in magicians:

    ... print(magician)

    File "", line 2

    print(magician)

    ^

    IndentationError: expected an indented block忘记缩进额外的代码行

    逻辑错误,不会报错,但结果不符合预期不必要的缩进

    >>> message = "Hello"

    >>> print("123")

    File "", line 1

    print("123")

    ^

    IndentationError: unexpected indent循环后不必要的缩进

    遗漏冒号

    for语句末尾的冒号告诉 Python,下一行是循环的第一行

    数字列表

    列表非常适合用于存储数字集合

    range()方法

    可以生成一系列数字

    range(a, b) 让Python从 数字a 开始计数,到 数字b 停止,但不包含 数字b

    >>> for value in range(1, 5):

    ... print(value)

    ...

    1

    2

    3

    4

    range() 还可以指定 步长

    range(2, 11, 2) 数字范围是 2到11(不包含11),步长是 2

    >>> even_numbers = list(range(2, 11, 2))

    >>> print(even_numbers)

    [2, 4, 6, 8, 10]

    创建数字列表

    可以用 函数list() 将 range()的结果 直接转换为列表

    将 range() 作为 list() 的参数,返回值将是一个数字列表

    >>> numbers = list(range(1, 6))

    >>> print(numbers)

    [1, 2, 3, 4, 5]

    将10个整数的平方加入到一个列表中

    >>> squares = []

    >>> for value in range(1, 11):

    ... square = value ** 2

    ... squares.append(square)

    ...

    >>> print(squares)

    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    也可以用 range() 产生的数字循环存入临时变量,再使用 append() 将 临时变量乘方后的值 添加到 事先创建好的空列表 中

    简洁一点,不使用临时变量,这样更简洁,但是易读性不如上面的思路:

    >>> squares = []

    >>> for value in range(1, 11):

    ... squares.append(value ** 2)

    ...

    >>> print(squares)

    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    简而言之,有以下两种方法:

    numbers = list(range(1, 11))

    # **************************

    numbers1 = []

    for value in range(1, 11):

    numbers1.append(value)

    生成偶数和奇数列表:

    odd_numbers = list(range(1, 21, 2))

    even_numbers = list(range(2, 21, 2))

    数字列表的统计计算函数min()

    max()

    sum()

    >>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

    >>> min(digits)

    0

    >>> max(digits)

    9

    >>> sum(digits)

    45

    列表解析

    列表解析将 for 循环和创建新元素的代码合并成一行,并自动附加新元素

    >>> squares = [value ** 2 for value in range(1, 11)]

    >>> print(squares)

    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    首先,指定一个 描述性的列表名

    然后,指定一个 左方括号,并定义一个表达式,该表达式用于生成要存储在列表中的值

    最后,编写一个 for循环,用于给表达式提供值,再加上 右方括号

    切片

    创建切片

    指定要使用的第一个元素的索引和最后一个元素的索引加1,Python在到达第二个指定的元素后停止,不包含第二个指定的元素,例如 [0:3] 会输出 索引 0、1、2

    >>> men = ['Bob', 'Jack', 'David', 'Mark', 'Sean', 'Lisa']

    >>> print(men[0:3])

    ['Bob', 'Jack', 'David']

    输出结果是一个 列表

    若未指定第一个索引,将自动从列表开头开始

    >>> print(men[:4])

    ['Bob', 'Jack', 'David', 'Mark']

    若未指定第二个索引,则切片将包括第一个索引后面的所有元素

    >>> print(men[2:])

    ['David', 'Mark', 'Sean', 'Lisa']

    可以获取从特定位置到列表末尾的所有元素

    负数索引返回离列表末尾相应距离的元素:

    >>> print(men[-1:])

    ['Lisa']

    >>> print(men[-3:])

    ['Mark', 'Sean', 'Lisa']

    若要包含列表所有元素的切片,则是同时省略起始索引和终止索引 [:]

    遍历切片

    使用 for 循环遍历切片

    >>> players = ['charles', 'martina', 'michael', 'florence', 'eli']

    >>> for player in players[:3]:

    ... print(player.title())

    ...

    Charles

    Martina

    Michael

    利用切片复制列表

    创建一个包含整个列表的切片赋值给新的列表就是复制列表,这个切片就是原列表的副本

    >>> my_foods = ['pizza', 'falafel', 'carrot cake']

    >>> friend_foods = my_foods[:]

    >>> print(my_foods)

    ['pizza', 'falafel', 'carrot cake']

    >>> print(friend_foods)

    ['pizza', 'falafel', 'carrot cake']

    若直接将列表赋值给另外一个列表,这样无法实现列表的复制

    这样只是让两个变量指向了同一个列表

    正确的复制是 将列表的副本存储到新的列表中,而副本通过切片来产生

    friend_pizzas = pizzas[:]

    更多相关内容
  • Python 列表查找,如何在列表中查找项目或者元素索引 在本文中,你将学习如何在Python中查找列表中包含元素的索引。 有几种方法可以实现这一点,在本文中,你将学习三种不同的方式用于查找列表元素的索引 三种技巧...

    Python 列表查找,如何在列表中查找项目或者元素索引

    在本文中,你将学习如何在Python中查找列表中包含元素的索引。

    有几种方法可以实现这一点,在本文中,你将学习三种不同的方式用于查找列表元素的索引
    三种技巧如下:

    • 使用 index() 方法查找索引;
    • 使用 for-loop
    • 使用列表推导式和 enumerate() 函数

    Python 列表是什么?

    列表是Python中的内置数据类型,也是最强大的数据结构之一。
    它可以充当容器,用于存储相同变量名下的多个(通常是相关的)项。
    每一个元素都被放置在方括号 [] 内,方括号内的每一项都用 , 隔开。

    #  'my_information' 列表变量,包含字符串和数字
    my_information = ["John Doe", 34, "London", 1.76]
    

    从上面的示例中,你可以看到列表能包含任何数据类型的项,这意味着列表元素可以是多样的。这与只存储相同类型的项的数组不同,列表具备更大的灵活性。
    列表也是可变的,这意味着列表是动态的,列表项可以被更新,新项目可以添加到列表中,任何项都可以在程序的整个生命周期中随时删除。

    Python索引概述

    列表是项目(元素)的集合,它是一个有序的项目集合,并且在很大程度上保留了定义时的顺序。
    列表中的每个元素都有一个唯一的位置来标识它,这个位置就是元素的索引。
    Python和其它编程语言一样,索引都从0开始,而不是1。
    让我们看一下前文中使用的列表。

    my_information = ["John Doe", 34, "London", 1.76]
    
    • 列表的索引为零,计数从0开始;
    • 第一个列表元素 "John Doe" 的索引为0;
    • 第二个列表元素 34 的索引为1;
    • 第三个列表元素 "伦敦" 的索引为2;
    • 第四个列表元素 1.76 的索引为3。

    索引对于访问特定位置(索引)的元素非常有用,因此,可以通过使用列表元素的索引来获取列表的任意元素。
    要访问某个元素,首先使用列表的名称,然后在方括号中使用要访问的元素的索引对应的整数,下面是使用索引访问每个元素的方法:

    my_information = ["John Doe", 34, "London", 1.76]
    
    print(my_information[0])
    print(my_information[1])
    print(my_information[2])
    print(my_information[3])
    
    # 输出
    
    #John Doe
    #34
    #London
    #1.76
    

    那么,如何在Python列表中,查找元素的索引呢?

    在接下来的部分中,你将看到一些查找列表元素索引的方法

    在Python中使用 list 的 Index() 方法查找元素的索引

    到目前为止,你已经了解了如何通过引用某个值的索引号来访问该值,但是,当你不知道索引号,而你正在处理一个大的列表时,会发生什么呢?

    你可以给出一个值并找到它的索引,这样就可以检查它在列表中的位置,为此,Python内置了 index() 方法被用作搜索工具。 index() 方法的语法如下所示

    my_list.index(item, start, end)
    

    让我们来分析一下:

    • my_list:正在搜索的列表的名称;
    • .index() :具备3个参数的搜索方法,一个参数是必需的,另外两个是可选的;
    • item:必需的参数,它是待搜索其索引的元素;
    • start:第一个可选参数,开始搜索的索引。
    • end:第二个可选参数,结束搜索的索引。

    让我们来看一个仅使用必须参数的示例:

    programming_languages = ["JavaScript","Python","Java","C++"]
    
    print(programming_languages.index("Python"))
    
    # 输出
    # 1
    

    在上面的例子中, index() 方法只接受 1 个参数,这个参数就是要查找索引的元素,请记住,传递的参数是区分大小写的,这意味着如果你传递的是 "python" 而不是 "Python" ,你会收到一个错误,因为带有小写 "p""python" 不是列表的一部分。它的返回值是一个整数,这个整数就是传递值的索引。

    让我们看另一个例子:

    programming_languages = ["JavaScript","Python","Java","C++"]
    
    print(programming_languages.index("React"))
    
    # 输出
    # line 3, in <module>
    #    print(programming_languages.index("React"))
    # ValueError: 'React' is not in list
    

    如果你尝试搜索一个元素,但在正在搜索的列表中没有匹配元素,Python 将抛出一个错误作为返回值,该错误类型是 ValueError ,它表示列表中不存在正在搜索的元素。
    防止这种情况发生的一种方法是将 index() 方法的调用放在 try/except 块中。
    如果该值不存在,控制台将收到一条消息,表示该值未存储在列表中,因此不存在。

    programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
    
    try:
        print(programming_languages.index("React"))
    except ValueError:
        print("That item does not exist")
        
    #输出
    #That item does not exist
    

    另一种方法是在查找索引之前,先检查元素是否在列表中,输出将是一个布尔值: TrueFalse

    programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
    
    print("React" in programming_languages)
    
    #输出
    #False
    

    index() 方法中的可选参数

    让我们来看看下面的例子:

    programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
    
    print(programming_languages.index("Python"))
    
    #output
    #1
    

    在列表类型的变量 programming_languages 中,有3个待搜索的“Python”字符串实例。
    因为在本例中,列表元素数很少,所以有一种反向查找的测试方法,可以数一数,算出它们的索引号,然后像你在前面章节中看到的那样引用它们。

    programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
    
    print(programming_languages[1])
    print(programming_languages[3])
    print(programming_languages[5])
    
    #output
    #Python
    #Python
    #Python
    

    一个在位置1,另一个在位置3,最后一个在位置5。
    当使用 index() 方法时,为什么它们不显示在输出中?
    使用 index() 方法时,返回值仅为列表中第1个出现的项,其余的不会返回, index() 方法只返回元素第1次出现的位置的索引。
    可以尝试将可选的开始结束参数传递给 index() 方法。

    你已经知道,第一次出现从索引1开始,所以这可能是 start 参数的值,对于end参数,可以先找到列表的长度。
    要查找长度,请使用 len() 函数。

    print(len(programming_languages)) 
    
    #output is 6
    

    end 参数的值将是列表的长度减去1,列表中最后一项的索引总是比列表长度小一个,所以,把所有这些放在一起,下面是如何尝试获取该项的所有3个实例。

    programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
    
    print(programming_languages.index("Python",1,5))
    
    #output
    #1
    

    输出仍然只返回第一个实例,尽管开始和结束参数为搜索提供了一系列位置,但使用 index() 方法时返回的值,仍然只是列表中第一个出现的元素。

    如何获取列表中所有元素的索引

    使用for循环获取列表中所有项目的索引。
    让我们使用之前的事例,该列表中出现了三个字符串 “Python”

    programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
    

    首先,创建一个新的空列表,这将是存储“Python”所有索引的列表。

    programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
    
    python_indices = []
    

    接下来,使用for循环。这是一种迭代(或循环)列表的方法,并获取原始列表中的每个元素,具体来说,我们循环每个元素的索引号。

    programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
    
    python_indices = []
    
    for programming_language in range(len(programming_languages)):
    

    首先使用for关键字,然后创建一个变量 programming_language ,它将在迭代过程中充当原始列表中每个元素位置的占位符。
    接下来,需要指定for循环应该执行的迭代次数,在这种情况下,循环将从开始到结束遍历列表的整个长度。
    语法 range(len(programming_languages)) 是访问列表 programming_languages 中所有元素的一种方式。

    range() 函数接受一系列数字,这些数字指定开始计数结束计数的数字。
    len() 函数的作用是:计算列表的长度,因此在本例中,计数从0开始,列表的结尾结束。

    最后,需要设置一个逻辑条件。
    本质上,你的目标是:“如果在迭代过程中,给定位置的元素值等于 Python ,那么将该位置添加到我之前创建的新列表中。”。
    使用 append() 方法将元素添加到列表中。

    programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
    
    python_indices = []
    
    for programming_language in range(len(programming_languages)):
        if programming_languages[programming_language] == "Python":
          python_indices.append(programming_language)
    
    print(python_indices)
    
    #output
    
    #[1, 3, 5]
    

    使用列表推导式和 enumerate() 函数获取列表中所有元素的索引

    另一种方法是使用列表推导式来找到某个特定元素的所有索引,列表推导式是一种基于现有列表创建新列表的方法,下面是如何使用列表推导式获得字符串 Python 每次出现的所有索引:

    programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
    
    python_indices  = [index for (index, item) in enumerate(programming_languages) if item == "Python"]
    
    print(python_indices)
    
    #[1, 3, 5]
    

    使用 enumerate() 函数,可以存储满足设置条件的元素的索引。
    It first provides a pair (index, item) for each element in the list () that is passed as the argument to the function.
    首先它会把列表( programming_languages )中的每一个键值对( (index, item) ),作为参数传递到函数中。
    index 表示列表项的索引号, item 表示列表项本身。

    然后,它充当一个计数器,从0开始计数,并在每次满足设置的条件时递增,选择并移动符合条件的元素的索引。与列表推导式相结合,它将创建一个包含字符串“Python”的所有索引的新列表。

    总结

    就在这里!现在,你已经知道了在Python的列表中查找元素索引的一些方法,以及查找元素多次出现的索引的方法。
    我希望你觉得这篇文章有用。
    感谢阅读和愉快的编码!

    展开全文
  • python之列表详解

    千次阅读 2021-11-02 12:16:17
    列表方法1.append()列表后面添加元素2.insert()指定位置添加元素3.pop()删除元素4.count()返回的是某个元素在列表里面的个数5.extend() 合并列表6.index()返回的是元素在列表中的第一个位置7.remove()------...

    一.创建列表

    数据类型list,list是python内置的一种高级数据类型。list是一种有序的集合,基于链表实现 在python中应用很广泛

    1.基于弱数据类型语言的定义

    names=['james', 'michael', 'emma', 'emily']
    print('names的数据类型:', type(names))#type()函数是查看变量类型
    print(names)
    

    运行结果如下:
    在这里插入图片描述

    2.通过全局函数list()定义

    ls2 = list([1, 2, 3, 4, 5])
    print(ls2)
    

    运行结果如下:
    在这里插入图片描述

    3.创建空列表

    age=[]#直接创建空列表
    print(age)
    print(len(age))#len()函数计算长度
    ls1 = list()#通过list()函数创建
    print(ls1)
    

    运行结果:
    在这里插入图片描述

    二.访问列表的值

    1.通过下标索引

    names = ['james', 'michael', 'emma', 'emily']
    print(names[0])
    print(names[-1])  #访问列表中的最后一个值
    print(names[-2])#访问列表中的倒数第二个元素,反向索引
    print(names[len(names)-2]) #效果如上
    

    运行结果如下:
    在这里插入图片描述

    2.通过for循环遍历

    names = ['james', 'michael', 'emma', 'emily']
    for name in names:
        print(name)  
    
    for i in range(len(names)):
        print(names[i])
    

    运行结果:
    在这里插入图片描述

    3.通过while循环遍历

    names = ['james', 'michael', 'emma', 'emily']
    index = 0    #通过while循环来列出所有元素
    while index < len(names):
        print(names[index])
        index += 1
    

    运行结果如下:
    在这里插入图片描述

    三.列表的分片

    a=['egg', 'fish', 'cake', 'tomato', 'james', 'ava', 'michael', 'emma', 'emily']
    print(a[1:3]) #按下标0开始,不包括最右边的3
    print(a[1:]) #1以及之后的全部
    print(a[:3]) #3之前的但不包括3
    print(a[:]) #所有
    print(a[::2])#[start:end:step]start和end为空的时候,默认是全选,step为空时默认是1,这个表示的是从索引为0开始,以步长为2来选择元素
    print(a[1:3:2])#以索引为1开始,索引3结束,步长为2来选择元素
    print(a[::-1])#当step为-1时,将列表进行了逆序排序
    print(a[::-2])#当步长为正数时,是从左到右以该步长来获取列表中的元素,当步长为负数时,是从右边到左以该步长的绝对值来获取的元素
    print(a[0, 1, 3]) #不可以通过离散的索引值来获取
    

    运行结果:
    在这里插入图片描述

    四.列表方法

    1.append()列表后面添加元素

    food=['egg', 'fish', 'cake', 'tomato']
    food.append('ice') #在list的末尾添加元素
    print(food)
    

    运行结果:
    在这里插入图片描述

    2.insert()指定位置添加元素

    food=['egg', 'fish', 'cake', 'tomato']
    food.insert(1, 'meat') #在1这个位置添加元素
    print(food)
    

    运行结果:
    在这里插入图片描述

    3.pop()删除元素

    food=['egg', 'fish', 'cake', 'tomato']
    food.pop() #删除list末尾的元素
    print(food)
    food.pop(0) #删除索引0的元素
    print(food)
    food[0]='egg' #修改索引0的元素为egg
    print(food)
    

    运行结果:
    在这里插入图片描述

    4.count()返回的是某个元素在列表里面的个数

    list1 = [1, 3, 3, 4, 5]
    print('count:', list1.count(3))#统计3在列表中出现的次数
    

    运行结果:
    在这里插入图片描述

    5.extend() 合并列表

    list1 = [1, 3, 3, 4, 5]
    list2 = [6, 5, 8, 9]
    list1.extend(list2) #在列表1后面添加列表2
    print(list1)
    

    运行结果:
    在这里插入图片描述

    6.index()返回的是元素在列表中的第一个位置

    list2 = [1, 2, 4, 5, 7, 4]
    print('index:', list2.index(4))  # 从列表中找出第一个数值为4的索引位置,不管第二个
    

    运行结果:
    在这里插入图片描述

    7.remove()---------- 删除某个元素,如果有重复,删除的是第一次出现的元素,如果元素不存在会报错

    list2 = [1, 2, 4, 5, 7, 4]
    list2.remove(4)#从列表中找出第一个数值为4的值然后删除,不管第二个
    print('remove:', list2)
    

    运行结果:
    在这里插入图片描述

    8.sort()进行排序(从小到大 int类型)可以对字母进行排序(ASCII值)类型不能混

    list2 = [1, 2, 4, 5, 7, 4]
    list2.sort()#对原列表进行排序
    print('sort;', list2)
    

    运行结果:
    在这里插入图片描述

    9.reverse()将列表进行翻转

    list2 = [1, 2, 4, 5, 7, 4]
    list2.reverse()
    print('reverse;', list2)
    

    运行结果:
    在这里插入图片描述

    10.clear() 清除元素

    list2 = [1, 2, 4, 5, 7, 4]
    list2.clear()
    print(list2)
    

    运行结果:
    在这里插入图片描述

    11.copy() 浅拷贝对象 不等价与 =

    list1 = [8, 9, 0]
    list2 = list1.copy()
    print(list2)
    

    运行结果:
    在这里插入图片描述

    五.列表的操作

    1.拼接列表

    print('列表相加:', [1, 2, 3]+ [4, 5, 6]) #列表的操作符 + 相当于拼接列表
    print('列表相加:', [1, 2, 3]+['a', 'b'])
    

    运行结果:
    在这里插入图片描述

    2.列表相乘

    print('列表相乘:', ['a', 'b']*3) #列表相乘
    

    运行结果:

    在这里插入图片描述

    3.判断

    print('判断列表元素是否存在于列表中:', 'a' in ['a', 'b'])
    print('判断列表元素是否存在于列表中:', 'a' not in['a', 'b'])
    

    运行结果:
    在这里插入图片描述

    六.列表中元素的类型的多样性

    a_list=['lemon', 100, ['a', 'b', 'c', 'd'], True]#同一个list的类型可以是字符串,整型,布尔型(true和false),以及嵌套的list
    print(a_list)
    print(a_list[0])
    print(a_list[2])
    print(a_list[3])
    

    运行结果:
    在这里插入图片描述

    b_list=['a', 'b', 'c', 'd']
    a_list=['lemon', 100, b_list, True]
    print(a_list)
    item_b=a_list[2][1]#获取嵌套中列表中的单个元素可以用二维的索引获取,类似于二维数组。[2]表示获取a_list的第三个元素,即b_list,#[1]表示获取b_list的第二个元素,即’b‘
    print(item_b)
    

    运行结果:
    在这里插入图片描述

    七.列表推导式

    new_list=[x for x in iterable]其中的iterable表示可迭代的对象,包括字符串(str)、列表(list)、元组(tuple)、字典(dict)、集合(set)生成器(generator)

    str_list=[x.lower()for x in 'Lemon']#lower()将大写转为小写
    print(str_list)
    

    运行结果:
    在这里插入图片描述

    list_list=[x**2 for x in [1, 2, 3, 4]]
    print(list_list)
    

    运行结果:
    在这里插入图片描述

    tuple_list=[x+2 for x in (1, 2, 3, 4)]
    print(tuple_list)
    

    运行结果:
    在这里插入图片描述

    ge_list=[x for x in range(8)]
    print(ge_list)
    

    运行结果:
    在这里插入图片描述

    八.列表常用方法总结

    1.append()---------列表后面添加元素
    2.insert()---------向指定的下标处添加元素
    3.pop()---------删除元素
    4.count()------返回的是某个元素在列表里面的个数
    5.extend() -------合并列表
    6.index()--------返回的是元素在列表中的第一个位置
    7.remove()---------- 删除某个元素,如果有重复,删除的是第一次出现的元素,如果元素不存在会报错
    8.sort()-------进行排序(从小到大 int类型)可以对字母进行排序(ASCII值)类型不能混
    9.reverse()-------将列表进行翻转
    10.clear() -------清除元素
    11.copy()----- 浅拷贝对象 不等价与 =

    展开全文
  • android 获取相册列表的实现源码

    千次下载 热门讨论 2015-03-09 18:33:19
    获取手机相册,点击每个相册之后进入该相册的图片列表界面,在图片列表界面可以实现图片多选,然后进入所选择的图片界面,在该界面内可以实现所选图片的上传等功能。 该项目最大特色: 1、获取相册列表,目前网络...
  • 2018中国省市县名称列表Excel完整版

    热门讨论 2018-07-26 11:59:33
    2018中国省市县名称列表Excel完整版,只包含名称,不包含行政区代码。
  • python列表,python键盘输入列表,列表: 列表的功能列表列表的功能十分强大,它不同于元组和字符串,列表的内容是可变的。本次将介绍一些序列中没有而列表中有的方法。1、元素赋值赋值语句是最简单的改变列表的...

    python列表,python键盘输入列表,列表:  列表的功能

    列表:

    列表的功能十分强大,它不同于元组和字符串,列表的内容是可变的。本次将介绍一些序列中没有而列表中有的方法。

    1、元素赋值

    赋值语句是最简单的改变列表的方式,如a=1就是一种改变列表的方式。我们可以通过编号标记某个特定位置的元素,并对该位置的元素重新赋值,如:a=[1,2,3,4,5]print(a)a[1]=5print(a)

    1450096360-0.png

    那么是否可以赋不同类型的值呢?让我们尝试一下,输入:a=[1,2,3,4,5]print(a)a[1]=‘he‘print(a)

    145009B59-1.png

    结果是可行的。通过上面的尝试,我们得知,可以对一个列表中的元素赋予不同类型的值。上述列表a中既有int型,也有str型元素。当对列表赋值时使用的编号超过列表最大编号,程序报错:

    1450095400-2.png

    由此可知,不能给一个不存在的元素赋值。

    2、增加元素

    一旦初始化了一个列表,我们就不能再往这个列表中增加元素了。若需要往列表中增加元素,则需要将整个列表中的元素都复制一遍,再添加需要增加的元素。python为我们提供了对应的方法append()来解决这个问题。append()方法是一个用于在列表末尾添加新对象的方法。具体语法为:list.append(obj)#其中list为列表,obj为需要添加到列表末尾的对象

    append()不是简单地返回修改后的新列表,而是直接修改原来的列表。如:a=[1,2,3,4,5]a.append(0) #在列表a后添加‘0’print(a)a.append(‘aa‘) #在列表a后添加‘aa’print(a)

    1450092119-3.png

    3、删除元素

    Python为我们提供了三种删除元素的方法:

    (1)使用del语句删除列表元素

    这种方法适用于知道所需要删除的元素在列表中的位置,即知道该元素在列表中的编号。如:a=[1,2,3,4,5]del a[2]print(a)

    1450092K8-4.png

    (2)使用方法pop()删除列表元素

    当我们不知道待删除元素的编号,或是删除后还需要用该值时,可以选择这个方法。pop()可以删除列表末尾的元素,删除后的值仍可以打印出来。如:a=[‘1‘,‘2‘,‘3‘]b=a.pop()print(a)print(b)

    14500a119-5.png

    (3)使用方法remove()删除指定值的元素

    当我们只知道待删除元素的值,而不知道其在列表中的位置时,可以使用remove()方法。如:a=[1,2,3,4,5,6]a.remove(1)print(a)

    1450095952-6.png

    需要注意的是,remove()方法只会删除列表中第一个指定的值,若列表中存在多个相同的值需要删除,需要使用循环语句操作。如:a=[1,4,1,2,1,3,1]a.remove(1)print(a)

    1450094O7-7.png

    a=[1,4,1,2,1,3,1]b=a.count(1)for i in range(b): a.remove(1)print(a)

    1450091154-8.png

    4、分片赋值

    分片赋值我们需要用到一个新函数——list()函数,list()函数可以直接将字符串转换为列表。分片赋值可以使用与原序列不等长的序列将序列分片替换。如:a=list(‘hie‘)print(a)a[1:]=list(‘ello‘)print(a)

    1450092627-9.png

    分片赋值还可以在不替换任何原有元素的情况下在任意位置插入新元素。a=list(‘h!‘)print(a)a[1:1]=list(‘ello‘)print(a)

    1450093G1-10.png

    同理,分片赋值也支持对序列中任意位置的元素进行删除的操作。a=list(‘hello!‘)print(a)a[1:5]=[]print(a)

    14500915X-11.png

    列表方法:

    方法是与对象有紧密联系的函数,对象可能是列表、数字,也可能是字符串或其他类型的对象。方法的调用语句如下:

    对象.方法(参数)

    方法的定义方式是将对象放到方法名之前,两者之间用 ‘.’ 隔开,方法后面的括号可以根据需要带上参数。

    1、count()

    count()方法用于统计某个元素在列表中 出现的次数,方法语句如下:list.count(obj)

    示例如下:a=list(‘hello‘)print("列表中字母l的个数:",a.count(‘l‘))

    14500aG0-12.png

    2、extend()

    extend()方法用于在列表末尾 一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

    示例如下:a=[‘hello‘,‘world‘]b=[‘a‘,‘b‘]a.extend(b)print(a)

    1450094161-13.png

    3、index()

    index()方法用于从列表中找出某个值第一个匹配项的索引位置。

    示例如下:a=[‘hello‘,‘world‘]print(‘hello的索引位置为:‘,a.index(‘hello‘))print(‘world的索引位置为:‘,a.index(‘world‘))

    1450094342-14.png

    4、insert()

    insert()方法用于从列表中找出某个值第一个匹配项的索引位置。方法语句如下:list.insert(index,obj)#list代表列表,index代表对象obj需要插入的索引位置,obj代表要插入列表中的对象。

    示例如下:a=[1,2,3]print(‘插入前:‘,a)a.insert(2,2.5)print(‘插入后:‘,a)

    145009C20-15.png

    5、reverse()

    reverse()方法用于反向列表中的元素。

    示例如下:a=[1,2,3]print(‘反转前:‘,a)a.reverse()print(‘反转后:‘,a)

    1450095353-16.png

    6、sort()

    sort()方法用于对原列表进行排序,如果指定参数,就使用参数指定的比较方法进行排序。

    示例如下:a=[5,4,2,6,9,3,0,7]print(‘调用sort()方法前:‘,a)a.sort()print(‘调用sort()方法后:‘,a)

    14500944B-17.png

    python列表

    展开全文
  • python中创建空列表If you want to learn how to create an empty list in Python efficiently, then this article is for you. 如果您想学习如何在Python中高效地创建一个空列表,那么本文适合您。 You will learn...
  • Python基础之列表及使用for循环操作列表 列表 列表由一系列按特定顺序排列的元素组成; 用方括号 [] 来表示列表,并用逗号来分隔其中的元素; # 创建一个简单的列表 bicycles = ['trek','cannondale','redline','...
  • 【技能树共建】Python 列表推导式

    万次阅读 多人点赞 2022-04-21 17:46:56
    Python 列表推导式是什么 列表推导式是 Python 语言特有的一种语法结构,也可以看成是 Python 中一种独特的数据处理方式, 它在 Python 中用于 转换 和 过滤 数据。 其语法格式如下所示,其中 [if 条件表达式] 可...
  • python列表连接列表In this tutorial, we will unveil different methods to concatenate lists in Python. Python Lists serve the purpose of storing homogeneous elements and perform manipulations on the ...
  • python列表查找值Hi Folks! In this article, we will have a look at the various ways to find the average of a list in a Python List.嗨伙计! 在本文中,我们将介绍在Python List中查找列表平均值的各种方法 ...
  • 【python学习】列表、元组、字典、集合(详解)

    千次阅读 多人点赞 2022-03-31 16:34:55
    关注作者,持续阅读作者的文章,学习更多知识! ... 一、列表 列表(list)是Python中的一种数据结构,它可以存储不同类型的数据。...3.每个元素的排列是有序号的,元素相同但排列不同的列表属于不同的列表。 4...
  • Python:列表 【全用法】

    万次阅读 多人点赞 2019-07-02 09:31:28
    python中有列表、元组、集合、字典这四种可以存放多个数据元素的集合,他们在总体功能上都起着存放数据的作用,却都有着各自的特点。本片文章中我们会对列表的用法做详细说明。 演示环境: python3.6 pycharm中的...
  • 有序列表、无序列表、定义列表

    千次阅读 2021-04-18 10:32:32
    有序列表、无序列表、定义列表 三种列表标签和语义 标签 语义 <u1></u1> 无序列表 <o1></o1> 有序列表 <d1></d1> 定义列表 无序列表 无序列表顾名思义就是“没有...
  • 在本文中,我们将看到如何创建包含字符串数据类型的列表列表。内部列表本身或字符串数据类型,并且它们可以包含数字或字符串作为其元素。使用剥离和拆分我们使用这两种方法,它们将首先分离出列表,然后将列表中的...
  • 数据结构☞散列表

    千次阅读 多人点赞 2021-01-23 23:25:48
    列表(Hash Table) 散列表的英文叫“Hash Table”,我们平时也叫它“哈希表”或者“Hash 表”。 散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。可以说,...
  • python通关-列表操作方法详解

    万次阅读 多人点赞 2021-01-13 22:54:23
    列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表是一个数据的集合,集合内可以放任何数据类型,可对集合方便的增删改查操作。Python已经内置确定序列的长度以及确定最大和最小的元素的方法 ...
  • Python 二维列表

    千次阅读 2021-12-26 13:15:50
    二维列表的元素还是列表列表的嵌套),称之为二维列表。 需要通过行标和列标来访问二维列表的元素 二、创建二维列表 1、追加一维列标来生成二维列标 生成一个4行3列的二维列表 row1 = [3, 4, 5] row2 = [1, 5, 9...
  • WPS表格 下拉列表 两级下拉列表联动 多级下拉列表联动
  • 列表生成式:会将所有的结果全部计算出来,把结果存放到内存中,如果列表中数据比较多,就会占用过多的内存空间,可能会导致MemoryError内存错误或者导致程序在运行时出现卡顿的情况列表生成器:会创建一个列表生成...
  • 今天带大家温习的是Python中的列表操作,全篇博文没有难点问题,很基础但是也很重要,推荐对Python还不够熟悉的朋友赶紧掌握起来哦。
  • python 两个列表比较In this article, we will understand the different ways to compare two lists in Python. We often come across situations wherein we need to compare the values of the data items stored...
  •   本文章主要讲解的是关于Python中列表的操作、常用方式、注意事项等内容,是列表的专题讲解。   大部分内容都是在后续的自动化文章中会使用到的内容,小部分内容了解即可,初识Python的同学建议都了解一下,话...
  • Qt QListWidget列表框用法详解

    千次阅读 2022-01-25 13:30:02
    很多应用程序中需要以列表的形式向用户展示数据(资源),比如 Windows 操作系统会以列表的方式展示很多张桌面背景图(如图 1a) 所示),再比如很多音乐播放器中以列表的形式展示音乐资源,用户可以选择自己喜欢的...
  • python列表 (list)

    千次阅读 2021-04-27 03:12:11
    python列表 (list)python的列表(list)是使用频率最高的一种数据结构, 很像C++中的vector 和 java 中的ArrayList, 是大小可动态变换的数组。 单个列表可以同时存储多种数据类型, 而不一定非得是同一种数据类型。...
  • CSS列表有序列表无序列表无序列表去掉点成行显示 有序列表 有序列表顾名思义就是会对列表排序 例如这样↓ 1.第一句 2.第二句 3.第三句 <ol> <li>第一句</li> <li>第二句</li> &...
  • python实现两个一维列表合并成一个二维列表我就废话不多说了,直接上代码吧!>>> list1 = [1,2,3,4,4]>>> list2 = [2,3,4,5,2]>>> z = list(zip(list1,list2))>>> z[(1, 2), (2...
  • android时区列表

    热门讨论 2013-01-23 16:15:22
    从安卓源码中获取的时区列表,只是稍微修改了下。
  • Python中的列表介绍

    万次阅读 多人点赞 2021-09-23 08:42:02
    列表是python中数据类型其中的一种,关键字是list。列表(list)是一种可变序列类型,我们可以追加、插入、删除和 替换列表中的元素。 创建列表的方法: 1、使用list函数 2、使用[]指定具体的元素列表 print...
  • python 中如何获取列表的索引

    万次阅读 2020-12-29 07:46:07
    python 中如何获取列表的索引1.index方法list_a= [12,213,22,2,32]for a in list_a:print(list_a.index(a))结果: 0 1 2 3 4如果列表的没有重复的话那么用index完全可以的,那么如果列表中的元素有重复的呢?...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,356,636
精华内容 2,142,654
关键字:

列表

友情链接: 单片机A.zip