python列表与集合,以及循环时的注意事项
一、python列表
- 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,往后数的最后一个为-1依此类推。
- Python有6个序列的内置类型,但最常见的是列表和元组。
- 序列都可以进行的操作包括索引,切片,加,乘,检查成员。
- 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
- 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
- 列表的数据项不需要具有相同的类型
- 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
1.1字符串转列表
# list1 = [str(i) for i in "here"] # list2 = [str(i) for i in "hello"]
简单的循环,却很有效,因为总不能写成‘h','e','r','e'吧
1.2更新列表
# list1 = [str(i) for i in "here"] # list3=[] list3.extend([list1[x]])#列表取元素
1.3删除列表元素
可以使用 del 语句来删除列表的元素
# list1=[1,2,3,4] del list1[2]
二、python集合(内置的符号操作这里不提及)
- 集合的特点:
- 具有唯一性
- 不支持索引
- 与字典相同,也是无序的
2.1集合创建
# s=set(['d','df','ser']) # print(s)
2.2集合的添加元素
#集合减去交集,返回新集合 -----add()用于set()集合类
# s1=set('herea') # s2=set('hello') # s3=set() # for x in s1: # if x not in s2:#集合减去交集,返回新集合 -----add()用于set()集合类 # s3.add(x) # print(s3)
2.3删除集合元素
#remove() #删除元素 但是不是直接删除元素,而是删除集合的下标元素 #s1.remove(1)
三、增加删除元素时的踩雷区
我们经常会用到循环去遍历集合或者列表,当找到所需条件元素时便会对其增加或删除(从某个列表或者集合中),这里便是雷区,错误及其不易察觉
引用2.2的例子,将其修改成如下操作:
# list1 = [str(i) for i in "here"] # list2 = [str(i) for i in "hello"] # for x in range(len(list1)): # if list1[x] in list2:#列表删除元素,用不同时往空列表中加
修改为存在,然后删除,看似莫得问题,但这里的循环语句len(list1),在你删除后会动态的变化,便会出现列表下表越界的情况
# list1.remove(list1[x]) # print(list1)
修改为存在,然后删除,看似莫得问题,但这里的循环语句len(list1),在你删除后会动态的变化,便会出现列表下表越界的情况
**************************************希望能帮助到大家,解除相关疑惑*********************************************