Python之列表(list)基础知识点

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。Python之列表(list)基础知识点,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1. 创建列表

1.1 使用基本语法[]创建

# 创建空的列表 []
a = []
print(a) #结果,创建空的列表 []

# 创建列表[1, 2, ‘abc’]
b = [1,2,'abc']
print(b) #结果:[1, 2, ‘abc’]
print(b[2]) #结果:abc

1.2 基于list()创建

c = list()
print(c) #结果:创建一个空的列表
c.append(1)
print(c)  #结果:[1]

c = list('abcdefg')
print(c)  #结果:[‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’]

d = list(range(10))
print(d) #结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

1.3 range()创建整数列表

range()可以帮助我们非常方便的创建整数列表,这在开发中及其有用。语法格式为:

range([start],end ,[step])
start 参数:可选,表示起始数字。默认是 0
end 参数:必选,表示结尾数字。
step 参数:可选,表示步长,默认为 1
e = list(range(0,10,2))
print(e) #结果:[0, 2, 4, 6, 8]

f = list(range(10,0,-1))
print(f) #结果:[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

g = list(range(-10,-30,-2))
print(g) #结果:[-10, -12, -14, -16, -18, -20, -22, -24, -26, -28]

1.4 推导式生成列表

h = [x*2 for x in range(10)]
print(h) #结果:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

k = [x*2 for x in range(100) if x%9==0]
print(k) #结果:[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]

【参考博客】:四种方法创建list列表

2. 增加元素

2.1 append()方法

append() 方法用于在列表的末尾追加元素,该方法的语法格式如下:

listname.append(obj)

其中,listname 表示要添加元素的列表;obj 表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。

l = ['Python', 'C++', 'Java']

#追加元素
l.append('PHP')
print(l)  # ['Python', 'C++', 'Java', 'PHP']

#追加元组,整个元组被当成一个元素
t = ('JavaScript', 'C#', 'Go')
l.append(t)
print(l)  # ['Python', 'C++', 'Java', 'PHP', ('JavaScript', 'C#', 'Go')]

#追加列表,整个列表也被当成一个元素
l.append(['Ruby', 'SQL'])
print(l) # ['Python', 'C++', 'Java', 'PHP', ('JavaScript', 'C#', 'Go'), ['Ruby', 'SQL']]

2.2 列表相加+

使用+运算符可以将多个序列连接起来;列表是序列的一种,所以也可以使用+进行连接,这样就相当于在第一个列表的末尾添加了另一个列表。

language = ["Python", "C++", "Java"]
year = [1991, 1998, 1995]
l_y = language + year
print(l_y) # ['Python', 'C++', 'Java', 1991, 1998, 1995]

2.3 extend()方法

extend() 和 append() 的不同之处在于:extend() 不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列表中。

extend() 方法的语法格式如下:

listname.extend(obj)

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

l = ['Python', 'C++', 'Java']

#追加元素
l.extend('C')
print(l)  # ['Python', 'C++', 'Java', 'C']

#追加元组,元祖被拆分成多个元素
t = ('JavaScript', 'C#', 'Go')
l.extend(t)
print(l)  # ['Python', 'C++', 'Java', 'C', 'JavaScript', 'C#', 'Go']

#追加列表,列表也被拆分成多个元素
l.extend(['Ruby', 'SQL'])
print(l)  # ['Python', 'C++', 'Java', 'C', 'JavaScript', 'C#', 'Go', 'Ruby', 'SQL']

2.4 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)  # ['Python', 'C', 'C++', 'Java']

#插入元组,整个元祖被当成一个元素
t = ('C#', 'Go')
l.insert(2, t)
print(l)  # ['Python', 'C', ('C#', 'Go'), 'C++', 'Java']

#插入列表,整个列表被当成一个元素
l.insert(3, ['Ruby', 'SQL'])
print(l)  # ['Python', 'C', ('C#', 'Go'), ['Ruby', 'SQL'], 'C++', 'Java']

#插入字符串,整个字符串被当成一个元素
l.insert(0, "http://c.biancheng.net")
print(l)  # ['http://c.biancheng.net', 'Python', 'C', ('C#', 'Go'), ['Ruby', 'SQL'], 'C++', 'Java']

【参考博客】:Python list列表添加元素的3种方法

3. 修改元素

3.1 修改单个元素

修改单个元素直接对元素赋值即可

l = ['Python', 'C++', 'Java']
l[1] = 'C'
print(l)  # ['Python', 'C', 'Java']

3.2 修改多个元素

python支持通过切边语法给一组元素赋值。在进行这种操作时,如果不指定步长(step参数),python就不要求新赋值的元素个数与原来的元素个数相同;这就意味着,该操作既可以为列表添加元素,也可以为列表删除元素

l = ['Python', 'C++', 'Java']
l[0:1] = [1, 2, 3, 4]  
print(l)  # [1, 2, 3, 4, 'C++', 'Java']

如果对空切片(slice)赋值,就相当于插入一组新的元素

l = ['Python', 'C++', 'Java']
l[1:1] = [1, 2, 3, 4]  
print(l)  # ['Python', 1, 2, 3, 4, 'C++', 'Java']

4. 删除元素

4.1 del() 根据索引值删除元素

del 是 Python 中的关键字,专门用来执行删除操作,它不仅可以删除整个列表,还可以删除列表中的某些元素。我们已经在《Python列表》中讲解了如何删除整个列表,所以本节只讲解如何删除列表元素。

del 可以删除列表中的单个元素,格式为:

del listname[index]

其中,listname 表示列表名称,index 表示元素的索引值。

del 也可以删除中间一段连续的元素,格式为:

del listname[start : end]

其中,start 表示起始索引,end 表示结束索引。del 会删除从索引 start 到 end 之间的元素,不包括 end 位置的元素。

【示例】使用 del 删除单个列表元素:

l = ["Python", "C++", "Java", "PHP", "Ruby", "MATLAB"]
del l[2]
print(l)  # ['Python', 'C++', 'PHP', 'Ruby', 'MATLAB']

【示例】使用 del 删除一段连续的元素:

l = ["Python", "C++", "Java", "PHP", "Ruby", "MATLAB"]
del l[1: 4]
print(l)  # ['Python', 'Ruby', 'MATLAB']

4.2 pop() 根据索引值删除元素

Python pop() 方法用来删除列表中指定索引处的元素,具体格式如下:

listname.pop(index)

其中,listname 表示列表名称,index 表示索引值。如果不写 index 参数,默认会删除列表中的最后一个元素,类似于数据结构中的“出栈”操作。

pop() 用法举例:

l = ["Python", "C++", "Java", "PHP", "Ruby", "MATLAB"]
l.pop(1)  # 删除索引位置为1处的元素
print(l)  # ['Python', 'Java', 'PHP', 'Ruby', 'MATLAB']

l.pop()  # 删除最后一个元素
print(l)  # ['Python', 'Java', 'PHP', 'Ruby']

4.3 remove() 根据元素值进行删除

除了 del 关键字,Python 还提供了 remove() 方法,该方法会根据元素本身的值来进行删除操作。

需要注意的是,remove() 方法只会删除第一个和指定值相同的元素,而且必须保证该元素是存在的,否则会引发 ValueError 错误。

remove() 方法使用示例:

l = ["Python", "C++", "Java", "PHP", "Ruby", "MATLAB"]
l.remove('Ruby')  # 删除值为Ruby的元素
print(l)  # ['Python', 'C++', 'Java', 'PHP', 'MATLAB']

4.4 clear() 删除列表所有元素

Python clear() 用来删除列表的所有元素,也即清空列表,请看下面的代码:

l = ["Python", "C++", "Java", "PHP", "Ruby", "MATLAB"]
l.clear()  
print(l)  # []

5. 列表遍历

方法一:按下标索引遍历

a_list = list('abcdefg')

for i in range(len(a_list)):
    print(a_list[i])

方法二:for item in list 遍历

a_list = list('abcdefg')

for item in a_list:
    print(item)

6. 列表排序

参见博客:python 列表(list)排序

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/162747.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!