我说啊,这写代码嘛,啥都离不开“装东西”。你总得找个地方把你的数据啊、信息啊什么的搁一块儿,对吧?就像你出门买菜得有个篮子,做饭得有个碗,Python里干这活儿的,最基础、最常用、也最万能的,我跟你说,就是 列表(List)!

创建列表?听起来是不是挺高大上的?别被名字唬住了,这玩意儿简直就是新手村里送你的第一把趁手兵器,简单得不能再简单了。我刚学Python那会儿,第一次看到那对方括号 [],脑袋里就嗡地一下——“哎哟,这啥?!” 后来一上手,得,真香!

最最基础,入门级别的 创建列表 方法,说白了就是用一对儿中括号 [] 把你想放进去的东西给圈起来,中间用逗号 , 隔开。就这么点事儿!比如,你想攒一堆数字,随手就来一个:

my_numbers = [1, 2, 3, 4, 5]

你看,多直观!my_numbers 这个名字,就是我给这个新出炉的 列表 起的名字,等号 = 右边 [1, 2, 3, 4, 5] 就是这个 列表 本人。里面装了五个元素:1、2、3、4、5。这些都是整数,没毛病。

那如果我想装点别的呢?字符串可不可以?当然可以!字符串、数字、布尔值(就是 TrueFalse 那俩)、甚至别的 列表,统统都能往里扔!列表 这家伙,心可大了,来者不拒。

比如,我有个购物清单:

shopping_list = ["苹果", "牛奶", "面包", "鸡蛋"]

看见没?每个商品名字都是字符串,用双引号或单引号包起来,然后还是老规矩,中括号 框住,逗号隔开。这就是一个装字符串的 列表

来个混合型的,更刺激:

mixed_bag = [10, "hello", True, 3.14, ["another", "list"]]

这个叫 mixed_bag列表 里,有整数 10,有字符串 "hello",有布尔值 True,有浮点数 3.14,甚至还嵌套了一个小 列表 ["another", "list"]!这充分展现了 列表 的包容性,它不要求所有 元素 必须是同一种数据类型。这种灵活性,是很多其他编程语言里不常见到的,Python这方面简直是太体贴人了!

所以,第一种,也是最常用的 创建列表 方法,就是直接量身定制,用 [] 字面量语法,把想装的元素一股脑儿丢进去。这是最快捷、最直观的办法,没有之一。

那有没有更“高级”一点的?或者说,在特定场合下更方便的?

有!有时候我不想一开始就往 列表 里塞东西,我就想先造一个空的“篮子”放那儿,等会儿再往里装。这时候怎么办?简单啊,来个空的 中括号 就行:

empty_list = []

瞧,empty_list 现在就是一个干干净净、啥也没有的 列表 了。就像你刚拿到一个空购物袋,等着往里放东西一样。等你想加东西了,可以用 append() 方法往末尾加,或者用 insert() 在指定位置插入,那是后话了,今天我们重点是创建

除了直接用 [] 字面量,Python还提供了一个内置的函数,叫 list()。这个 list() 函数,本事可不小,它可以把其他一些可迭代(iterable)的对象,比如字符串、元组(tuple,长得像 列表 但用圆括号 () 的家伙)、集合(set,用花括号 {} 的家伙)等等,转换成 列表

比如说,我有一个字符串:

my_string = "Python"

我想把它拆成一个个字母组成的 列表,怎么办? list() 函数就派上用场了:

list_from_string = list(my_string)

结果会是 ['P', 'y', 't', 'h', 'o', 'n']。看到了吧?字符串 "Python" 里的每一个字符,都变成了一个独立的元素,组成了新的 列表 list_from_string。是不是挺神奇的?

再比如,我有个元组:

my_tuple = (10, 20, 30)

想把它变成 列表,也简单:

list_from_tuple = list(my_tuple)

现在 list_from_tuple 就是 [10, 20, 30] 了。

使用 list() 函数,特别是配合其他数据结构或者需要动态生成 列表 的时候,显得特别有用。它提供了一种标准化的转换方式。

还有一种创建 列表 的方法,非常Pythonic,叫做 列表推导式(List Comprehension)。这玩意儿写出来代码特简洁,虽然初看可能有点晕,但一旦习惯了,你会爱死它!它其实是一种快速生成 列表 的语法糖,通常用来根据已有的序列或其他可迭代对象来创建新的 列表,同时可能还会进行一些处理或者筛选。

列表推导式 的基本模样是这样的:

[expression for item in iterable]

或者带条件的:

[expression for item in iterable if condition]

举个例子,我想 创建 一个 列表,里面是1到10这几个数字的平方。不用循环怎么弄?用 列表推导式

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

range(1, 11) 会生成一个从1到10的序列(注意不包含最后的11)。 for x in range(1, 11) 的意思就是,挨个儿把这个序列里的每个数字取出来,赋值给 x。然后 x**2 表示对当前的 x 进行平方运算。最外层的 中括号 [] 把这一切包起来,告诉Python:“嘿,把我算出来的这些结果,都攒成一个 列表!”

所以 squares 最后的结果就是 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]。是不是感觉一行代码就搞定了好多事儿?比写个 for 循环、先创建空列表、再往里 append 要简洁多了!

再来个带条件的。比如,我只想取1到20之间的偶数,并且把它们翻个倍存到 列表 里:

even_doubled = [x * 2 for x in range(1, 21) if x % 2 == 0]

这里,for x in range(1, 21) 遍历1到20。if x % 2 == 0 是个条件,只保留那些能被2整除(也就是偶数)的 x。然后 x * 2 是对筛选出来的偶数进行翻倍操作。最终的结果,even_doubled 就会是 [4, 8, 12, 16, 20, 24, 28, 32, 36, 40]

列表推导式 可谓是 创建列表 的一种强大且优雅的方式,尤其在处理序列数据时,能让你的代码看起来更简洁、更“内行”。不过对于初学者来说,如果觉得有点绕,先掌握好直接用 [] 字面量和 list() 函数就完全够用了。慢慢来,这玩意儿急不来。

总而言之,python怎么创建列表?核心就是记住那对儿魔法般的中括号 []。它可以空着,装个啥也没有的 列表;也可以直接在里面填上你想放的各种元素,用逗号隔开。再进一步,你可以用 list() 函数把其他能“迭代”的东西变成 列表。进阶一点,还有列表推导式这种紧凑的语法帮你快速生成符合条件的 列表

在我看来, 列表 之所以如此重要,不光是因为它创建起来容易,更是因为它“能装”!它可以装各种各样的东西,而且它是一个“可变”(mutable)的数据类型,这意味着 列表创建 之后,你还可以往里加东西、删东西、改东西,甚至改变元素的顺序。这种灵活性,让 列表 几乎成了处理数据集、构建序列、实现队列或堆栈等数据结构时的首选工具。

所以,下次你再想在Python里“攒”一堆数据、信息或者其他任何东西的时候,第一时间就想到 列表,想到怎么用 中括号 [] 创建 它!从最简单的 [] 到里面塞满东西,再到 list() 的转换,最后是酷炫的列表推导式,每一种 创建列表 的方式都有它的用武之地。掌握了这些,你玩转Python的数据处理,那基础可就打牢了!快去你的Python环境里敲几行试试吧,亲自感受一下 创建列表 的简单与强大!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。