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)
修改为存在,然后删除,看似莫得问题,但这里的循环语句