目录
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
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)
看如上的代码,我用list()创建了三个列表,第一个是空表,另外两个都是循环体。range(10)就代表0-9,"range(10)"代表的则是一串字符。
索引就是
说白了就是用来查找的,索引是以数字表示的,每个数字只能代表一个元素。详细操作移步至本文
“列表的操作方法”这一节。
tips:索引是从0开始的,0就代表列表种的左边第一个元素,以此类推,直到列表长度减一。
你可能还不知道,列表是可变的数据类型,字符串是不可变的数据类型。
如何区分可变和不可变呢?直接看代码。
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))
代码中,我分别输出了改变它们的值前后,str1 和 list1 的内存地址,你会发现,str1的地址变了,而 list1 的值没变。
可变数据类型就是改变值,不改变内存地址。 字符串是不可变的,因为改变其值,其实是右开辟了新的内存空间来存储它。
列表的遍历方式有两种:
# 直接遍历 list1 = [1,2,3,4,5] for i in list1: print(i, end=" ")
上面的代码就是对列表的直接遍历,比较简单。
索引遍历,就是通过索引来查找列表种对应的元素。
list1 = [1,2,3,4,5] for i in range(len(list1)): print(list1[i], end=" ")
其中list[1],就代表索引为1的元素,其实就是 2。
常用的用于添加的方法有三个 append、insert、extend。
共同点:都是在列表末尾插入,均无返回值。
就是把一个元素追加到末尾。
list1 = [1,2,3,4,5]
return_value = list1.append("我的索引是 5")
print(list1, return_value)
默认把新元素插入到了末尾。
insert 就是将指定元素插入到指定位置。
list1 = [1,2,3,4,5]
return_value = list1.insert(1,"我是新来的")
print(list1, return_value)
上面的代码就是把 "我是新来的" 插入了索引位 2 的位置。
extend 就是把可被遍历的对象按顺序切割(就是分成单个的字母或数字等)插入列表的末尾。
list1 = [1,2,3,4,5] return_value = list1.extend("6789") print(list1, return_value)
看到最后你会发现,他们都没有返回值,都是 None。
list1 = [1,2,3,4,5] return_value = list1.pop() list1.pop(1) print(list1, return_value)
你会发现先默认删除了最后一个元素,然后右删除了索引为1的元素。
list1 = [1,2,3,4,5] return_value = list1.remove(3) print(list1, return_value)
这里有一点要注意,remove 括号里放的是要被删除的元素,不是索引。元素不存在报错。 无返回值。
这个简单除暴,把列表清空。
list1 = [1,2,3,4,5] return_value = list1.clear() print(list1, return_value)
无返回值。
- 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)
结果:
除了 index 和 count 都是没有返回值的。
文章结束,如果想要学习更多python基础知识,可以点个关注
我会持续更新的,下篇文章见