因为学完了Python中数据类型List的章节,所以对个别常用相关操作做个汇总,日后再慢慢增加,做个备忘
1. 创建List数据类型操作
1)使用 list() 函数可以创建一个空链表,将其赋值给一个变量即可以方便的对其进行操作和使用
2)使用 [ ] 也可以创建一个空链表,将其赋值给一个变量即可以方便的对其进行操作和使用
>>>listDemo1 = list()
>>>print (listDemo1)
>>>[]
>>>
>>>listDemo2 = []
>>>print (listDemo2)
>>>[]
>>>
2.向List中添加元素
1)直接创建的时候向list赋值:
>>>listDemo3 = [1, 2, 3, 4, 5, 6]
>>>print (listDemo3)
>>>[1, 2, 3, 4, 5, 6]
>>>
>>>listDemo4 = [1, 'a', 3.4, [5, 6]]
>>>print (listDemo4)
>>>[1, 'a', 3.4, [5, 6]]
>>>
2)使用append()向list添加元素(PS:append是向链表中添加元素,就算是添加链表也是作为原链表的元素,如下图所示)
>>>listDemo1.append(1)
>>>print (listDemo1)
>>>[1]
>>>
>>>listDemo1.append([1, 2, 3])
>>>print (listDemo1)
>>>[1, [1, 2, 3]]
>>>
3)使用extend()向list添加元素(书上说是扩展,这边只是为了好归纳这样写,不必纠结字面意思,真正了解添加后是什么样的存 在才是核心)
>>>test1 = [1, 2, 3]
>>>test2 = [4, 5, 6]
>>>test1.extend(test2)
>>>print (test1)
>>>[1, 2, 3, 4, 5, 6]
>>>
3. 删除List中的元素
1)使用pop(i)函数删除List中的元素(使用下标删除)
PS:该函数返回被删除的位于List[i]的值(i从0开始), 默认参数为-1,所以如果不提供参数将会删除List最后一个元素
>>>print (listDemo1)
>>>[1, [1, 2, 3]]
>>>listDemo1.pop()
>>>[1, 2, 3]
>>>print (listDemo1)
>>>[1]
>>>
>>>print (listDemo3)
>>>[1, 2, 3, 4, 5, 6]
>>>listDemo3.pop(0)
>>>1
>>>print (listDemo3)
>>>[2, 3, 4, 5, 6]
>>>
2)使用del 删除list中的值(不返回删除的值,使用下标删除)
>>>print (listDemo3)
>>>[2, 3, 4, 5, 6]
>>>
>>>del listDemo3[1]
>>>
>>>print (listDemo3)
>>>[2, 4, 5, 6]
>>>
>>>del listDemo[1:3] #不明白这个下标的意思可以接着往下面对List的操作,该操作实现了删除多个元素
>>>
>>>print (listDemo3)
>>>[2, 6]
>>>
3)使用remove(x)对元素进行操作(对值进行操作)
PS:不返回删除元素,该函数删除List中第一个出现的x
>>>listDemo5 = [1, 2, 3, 3, 4, 5]
>>>print (listDemo5)
>>>[1, 2, 3, 3, 4, 5]
>>>
>>>listDemo5.remove(3)
>>>
>>>print (listDemo5)
>>>[1, 2, 3, 4, 5]
4. 修改List中的元素
1)通过下标对List中的元素进行修改
>>>print (listDemo3)
>>>[2, 6]
>>>
>>>listDemo3[1] = 7
>>>
>>>print (listDemo3)
>>>[2, 7]
>>>
>>>listDemo1 = [1, 2, 3, 4, 5, 6]
>>>listDemo1[1:3] = ['x', 'y', 'z']
>>>print (listDemo1)
>>>[1, 'x', 'y', 'z', 4, 5, 6]
>>>
>>>listDemo1[1:3:2] = ['m']
>>>print (listDemo1)
>>>[1, 'm', 'y', 'z', 4, 5, 6]
>>>
5. 排序List中的元素
1)使用sort()函数对List进行排序
PS:最好List中元素是同一种类型,默认从小到达进行排序
>>>listDemo1 = [1, 3, 2, 5, 4]
>>>print (listDemo1)
>>>[1, 3, 2, 5, 4]
>>>
>>>listDemo1.sort()
>>>
>>>print (listDemo1)
>>>[1, 2, 3, 4, 5]
>>>
--------该水平线以上对List的操作是会真正改变到List的操作,如下操作不会改变到原有List,至于为什么以后学到再写吧 --------
6. 查询List中的元素
1)循环遍历链表所有元素(当然也可以直接打印单个元素下标的方法)
>>>print (listDemo5)
>>>[1, 2, 3, 4, 5]
>>>
>>>for val in listDemo5:
print (val, end = ' ') #print函数默认会自己换行,这样只是不让他换行而已,重点在输出内容
>>>1 2 3 4 5
>>>
>>>for i in range(len(listDemo5)) #i = [ 0, len(listDemo5) )
print (listDemo5[i], end = ' ')
>>>1 2 3 4 5
>>>
2)其他相关查询操作可以参考文章中对bisect模块的说明
7. 对List的其他相关操作
1)List间的 + 和 * 操作( * 操作可以看作是好几个 + 操作)
PS:按照自己练习的情况来看能用append()函数操作和+操作达到同样效果的时候,尽量使用append()函数,大批量操作的 时候尤其明显(书上是说+是创建一个新的链表,append是添加,可能也就是因为这个原因)
>>>listDemo1 = [1, 2, 3]
>>>listDemo2 = ['a', 'b', 'c']
>>>listDemo3 = listDemo1 + listDemo2
>>>print(listDemo3)
>>>[1, 2, 3, 'a', 'b', 'c']
>>>
>>>[1, 2] * 3 #可以看成[1, 2] + [1, 2] + [1, 2]
>>>[1, 2, 1, 2, 1, 2]
>>>
2)List的切片相关操作(就是你在之前几个操作中看不懂的那个符号:))
先简单归纳一下,再看具体操作结果:
List(a:b:c): a代表起始位置(省略代表从头开始),b代表结束位置(省略代表到List结尾)(一般操作的时候会包含起始位 置,不包含结束位置,具体理解可以结合实际操作), c表示步长即从a到b每个c-1个单位算一个元素(省略代表步长为 1)(具体理解看操作结果)
>>>listDemo = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>listDemo[1:5]
>>>[1, 2, 3, 4]
>>>
>>>listDemo[1:5:2]
>>>[1, 3]
>>>
>>>listDemo[ : 5]
>>>[0, 1, 2, 3, 4]
>>>
>>>listDemo[ :5:2]
>>>[0, 2, 4]
>>>
>>>listDemo[5: ]
>>>[5, 6, 7, 8, 9]
>>>
>>>listDemo[5::2]
>>>[5, 7, 9]
>>>
>>>listDemo[:]
>>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
3)对List使用SUM()函数对元素进行求和(PS:最好都是数字)
>>>print (listDemo5)
>>>[1, 2, 3, 4, 5]
>>>
>>>sum(listDemo5)
>>>15
>>>
4)部分字符串和列表之间的相互转换
#字符串转换成列表
>>>strDemo = "exchange"
>>>listDemo = list(strDemo)
>>>print (listDemo)
>>>['e', 'x', 'c', 'h', 'a', 'n', 'g', 'e']
>>>
>>>'1,2,3'.split(',')
>>>['1', '2', '3']
>>>
>>>'1,2,,3,'.split(',')
>>>['1', '2', '', '3', '']
>>>
>>> ' 1 2 3 '.split()
>>>['1', '2', '3']
>>>
#列表转换成字符串
>>>listDemo = ['a', 'b', 'c', 'h']
>>>delimiter = '+'
>>>delimiter.join(listDemo)
>>>'a+b+c+h'
>>>
8. List的其他相关注意事项
1) 话不多说直接代码更直观,应该都能理解吧
#is 指的是两个变量是否是指向同一片内存空间,如果是指向同一片内存空间,那一个被改变了另一个肯定也会跟着被改变
>>>str1 = "abcdef"
>>>str2 = "abcdef"
>>>str1 is str2
>>>True
>>>
>>>list1 = ['1', '2', '3']
>>>list2 = ['1', '2', '3']
>>>list1 is list2
>>>False
>>>
>>>list3 = ['1', '2', '3']
>>>list4 = list3
>>>list4 is list3
>>>True
>>>