惬意上手Python —— 列表

目录

1. 列表基础知识

1.1列表的创建

1.2列表的索引

2. 可变的列表与不可变的字符串

3. 列表的遍历

3.1直接遍历

3.2索引遍历 

4. 列表的操作方法

4.1 添加

4.1.1 append

4.1.2 insert

4.1.3 extend

4.2 删除

 4.2.1 pop

4.2.2 remove

4.2.3 clear

4.3 index、count、sort、reverse


1. 列表基础知识

可以把列表想象成一个输入框(假设),你可以在输入框中加入任意类型的字符。列表就是可以添加任意数据类型。 

1.1列表的创建

创建的方式共有两种。

规则:将任意个元素放在[ ]中间,使用逗号隔开 

# 创建一个列表1
list1 = [1,"3.14","中国",False,None,range(10),[1,"hi",3.14]]

以上是一个常用的列表创建方式,如你所见,里面可以放入五种常见的数据类型,也可以放入循环体(即Iterable【可迭代的】), 意思就是可以被 for 或 while 遍历。还可以在列表种放入列表,无限嵌套。

 另外一种:直接使用构造函数 list()

规则:1.参数为空就是空列表

           2.参数非空必须是Iterable ,即可以使用for循环

list1 = list()
list2 = list(range(10))
list3 = list("range(10)")
print(list1)
print(list2)
print(list3)

惬意上手Python —— 列表_第1张图片

看如上的代码,我用list()创建了三个列表,第一个是空表,另外两个都是循环体。range(10)就代表0-9,"range(10)"代表的则是一串字符。 

1.2列表的索引

索引就是

惬意上手Python —— 列表_第2张图片

说白了就是用来查找的,索引是以数字表示的,每个数字只能代表一个元素。详细操作移步至本文

  “列表的操作方法”这一节。

tips:索引是从0开始的,0就代表列表种的左边第一个元素,以此类推,直到列表长度减一。

2. 可变的列表与不可变的字符串

 你可能还不知道,列表是可变的数据类型,字符串是不可变的数据类型。

如何区分可变和不可变呢?直接看代码。 

str1 = "hello world"
list1 = [1,2,3]
print(str1, list1)
print(id(str1), id(list1))

str1 = "hi"
list1.append(4)
print(str1, list1)
print(id(str1), id(list1))

 惬意上手Python —— 列表_第3张图片

 代码中,我分别输出了改变它们的值前后,str1 和 list1 的内存地址,你会发现,str1的地址变了,而 list1 的值没变。

可变数据类型就是改变值,不改变内存地址。 字符串是不可变的,因为改变其值,其实是右开辟了新的内存空间来存储它。

3. 列表的遍历

 列表的遍历方式有两种

  1. 直接遍历列表
  2. 通过索引遍历

3.1直接遍历

# 直接遍历
list1 = [1,2,3,4,5]
for i in list1:
    print(i, end=" ")

上面的代码就是对列表的直接遍历,比较简单。 

3.2索引遍历 

索引遍历,就是通过索引来查找列表种对应的元素。

list1 = [1,2,3,4,5]
for i in range(len(list1)):
    print(list1[i], end=" ")

其中list[1],就代表索引为1的元素,其实就是 2。

4. 列表的操作方法

4.1 添加

 常用的用于添加的方法有三个 append、insert、extend。

共同点:都是在列表末尾插入,均无返回值。

4.1.1 append

 就是把一个元素追加到末尾。

list1 = [1,2,3,4,5]
return_value = list1.append("我的索引是 5")
print(list1, return_value)

 

默认把新元素插入到了末尾。 

4.1.2 insert

 insert 就是将指定元素插入到指定位置。

list1 = [1,2,3,4,5]
return_value = list1.insert(1,"我是新来的")
print(list1, return_value)

上面的代码就是把 "我是新来的" 插入了索引位 2 的位置。 

4.1.3 extend

 extend 就是把可被遍历的对象按顺序切割(就是分成单个的字母或数字等)插入列表的末尾。

list1 = [1,2,3,4,5]
return_value = list1.extend("6789")
print(list1, return_value)

 

看到最后你会发现,他们都没有返回值,都是 None。 

4.2 删除

 4.2.1 pop

  • pop 默认删除末尾,如果指定索引,删除索引对应元素,索引超出范围报错。 
  • pop 是有返回值的,因为是指定索引删除,不明谁被删除,所以会返回被删除的元素。
list1 = [1,2,3,4,5]
return_value = list1.pop()
list1.pop(1)
print(list1, return_value)

你会发现先默认删除了最后一个元素,然后右删除了索引为1的元素。 

4.2.2 remove

list1 = [1,2,3,4,5]
return_value = list1.remove(3)
print(list1, return_value)

这里有一点要注意,remove 括号里放的是要被删除的元素,不是索引。元素不存在报错。 无返回值。

4.2.3 clear

这个简单除暴,把列表清空。

list1 = [1,2,3,4,5]
return_value = list1.clear()
print(list1, return_value)

 

 无返回值。

4.3 index、count、sort、reverse

  • index     根据元素找对应的索引,找不到报错
  • count     统计某个元素出现的个数
  • sort        把列表进行排序,默认升序,加上“reverse=True”,代表降序
  • reverse  把列表的内容逆序输出

代码演示:

# index 根据元素找对应的索引, 找不到报错
l1 = [1, 2, 3, 4, 5, 6, 7, [1]]
print(l1.index([1], 0, 8))  # 不包括8

# count 统计某个元素出现的个数
l2 = [1,2,3,1,1,2,3]
print(l2.count(1))

# sort 排序,默认升序,reverse=Ture降序
l3 = [1, 2, 3, 6, 5, 9, 7]
a = l3.sort()
print(a, l3)
l3.sort(reverse=True)
print(l3)

# reverse 逆序输出
l3.reverse()
print(l3.reverse(), l3)

 结果:

惬意上手Python —— 列表_第4张图片

 除了 index 和 count 都是没有返回值的。

文章结束,如果想要学习更多python基础知识,可以点个关注

我会持续更新的,下篇文章见

惬意上手Python —— 列表_第5张图片

你可能感兴趣的:(python,开发语言)