乐趣区

关于gorm:极客大学云原生训练营JIKE

download: 极客大学 - 云原生训练营

Python list 列表增加元素的 3 种方法

运行后果:
language = [‘Python’, ‘C++’, ‘Java’]
birthday = [1991, 1998, 1995]
info = [‘Python’, ‘C++’, ‘Java’, 1991, 1998, 1995]

从运行后果可能发现,使用 + 会生成一个新的列表,原有的列表不会被改变。

+ 更多的是用来拼接列表,而且执行效率并不高,如果想在列表中插入元素,应该使用上面几个顺便的方法。
Python append() 方法增加元素
append() 方法用于在列表的开端追加元素,该方法的语法格局如下:
listname.append(obj)

其中,listname 示意要增加元素的列表;obj 示意到增加到列表开端的数据,它可能是单个元素,也可能是列表、元组等。

请看上面的演示:
l = [‘Python’, ‘C++’, ‘Java’]

追加元素

l.append(‘PHP’)
print(l)

追加元组,整个元组被当成一个元素

t = (‘JavaScript’, ‘C#’, ‘Go’)
l.append(t)
print(l)

追加列表,整个列表也被当成一个元素

l.append([‘Ruby’, ‘SQL’])
print(l)
运行后果为:
[‘Python’, ‘C++’, ‘Java’, ‘PHP’]
[‘Python’, ‘C++’, ‘Java’, ‘PHP’, (‘JavaScript’, ‘C#’, ‘Go’)]
[‘Python’, ‘C++’, ‘Java’, ‘PHP’, (‘JavaScript’, ‘C#’, ‘Go’), [‘Ruby’, ‘SQL’]]

可能看到,当给 append() 方法传送列表或者元组时,此方法会将它们视为一个整体,作为一个元素增加到列表中,从而形成蕴含列表和元组的新列表。
Python extend() 方法增加元素
extend() 和 append() 的不同之处在于:extend() 不会把列表或者元祖视为一个整体,而是把它们蕴含的元素逐个增加到列表中。

extend() 方法的语法格局如下:
listname.extend(obj)

其中,listname 指的是要增加元素的列表;obj 示意到增加到列表开端的数据,它可能是单个元素,也可能是列表、元组等,但不能是单个的数字。

请看上面的演示:
l = [‘Python’, ‘C++’, ‘Java’]

追加元素

l.extend(‘C’)
print(l)

追加元组,元祖被拆分红多个元素

t = (‘JavaScript’, ‘C#’, ‘Go’)
l.extend(t)
print(l)

追加列表,列表也被拆分红多个元素

l.extend([‘Ruby’, ‘SQL’])
print(l)
运行后果:
[‘Python’, ‘C++’, ‘Java’, ‘C’]
[‘Python’, ‘C++’, ‘Java’, ‘C’, ‘JavaScript’, ‘C#’, ‘Go’]
[‘Python’, ‘C++’, ‘Java’, ‘C’, ‘JavaScript’, ‘C#’, ‘Go’, ‘Ruby’, ‘SQL’]

Python insert() 方法插入元素
append() 和 extend() 方法只能在列表开端插入元素,如果心愿在列表两头某个地位插入元素,那么可能使用 insert() 方法。

insert() 的语法格局如下:
listname.insert(index , obj)

其中,index 示意指定地位的索引值。insert() 会将 obj 插入到 listname 列表第 index 个元素的地位。

当插入列表或者元祖时,insert() 也会将它们视为一个整体,作为一个元素插入到列表中,这一点和 append() 是一样的。

请看上面的演示代码:
纯文本复制
l = [‘Python’, ‘C++’, ‘Java’]

插入元素

l.insert(1, ‘C’)
print(l)

插入元组,整个元祖被当成一个元素

t = (‘C#’, ‘Go’)
l.insert(2, t)
print(l)

插入列表,整个列表被当成一个元素

l.insert(3, [‘Ruby’, ‘SQL’])
print(l)

插入字符串,整个字符串被当成一个元素

l.insert(0, “http://c.biancheng.net”)
print(l)
输入后果为:
[‘Python’, ‘C’, ‘C++’, ‘Java’]
[‘Python’, ‘C’, (‘C#’, ‘Go’), ‘C++’, ‘Java’]
[‘Python’, ‘C’, (‘C#’, ‘Go’), [‘Ruby’, ‘SQL’], ‘C++’, ‘Java’]
[‘http://c.biancheng.net’, ‘Python’, ‘C’, (‘C#’, ‘Go’), [‘Ruby’, ‘SQL’], ‘C++’, ‘Java’]

退出移动版