gpt4 book ai didi

Python实现列表拼接和去重的三种方式

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python实现列表拼接和去重的三种方式由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

列表拼接三种方式

列表拼接主要有以下三种方式:

  • 最简单的使用“+”;
  • 使用切片赋值的方法;
  • 使用列表自带的extend方法

方式一:简简单单的“+”

?
1
2
3
4
5
6
7
8
9
10
11
>>> list1 = [ 1 , 2 , 3 ]
>>> list2 = [ 4 , 5 , 6 ]
>>> id (list1)
4408465160
>>> id (list2)
4408325512
>>> list1 = list1 + list2
>>> list1
[ 1 , 2 , 3 , 4 , 5 , 6 ]
>>> id (list1)
4408504776

此方法易于理解,但你会发现其实list1已经不是原来那个list1了,list1的id值已经发生改变.

方法二:切片赋值

在这里,我们发现使用切片赋值的拼接就地执行,即它会修改原来的列表,但易读性不高 。

?
1
2
3
4
5
6
7
8
9
10
11
>>> list1 = [ 1 , 2 , 3 ]
>>> list2 = [ 4 , 5 , 6 ]
>>> id (list1)
4408465160
>>> id (list2)
4408504776
>>> list1[ len (list1): len (list1)] = list2
>>> list1
[ 1 , 2 , 3 , 4 , 5 , 6 ]
>>> id (list1)
4408465160

方式三:列表自带的extend()

?
1
2
3
4
5
6
7
8
9
>>> list1 = [ 1 , 2 , 3 ]
>>> list2 = [ 4 , 5 , 6 ]
>>> id (list1)
4408325512
>>> list1.extend(list2)
>>> list1
[ 1 , 2 , 3 , 4 , 5 , 6 ]
>>> id (list1)
4408325512

这里,你会发现列表自带的extend()也是就地执行,即它会修改原来的列表,直接在原来的列表后面拼接新列表。 综合上面三种方式,第一种的使用“+”拼接需要易于理解,但却不是就地执行,而是新开辟一块空间来存放新列表;第二种比较难于理解;还是Python列表自带的extend()拼接列表函数较为友好.

列表去重的三种方式

例如有以下一个列表:需要你进行去重,你能想到哪些方法呢 。

?
1
num_list = [ 1 , 8 , 9 , 1 , 2 , 3 , 4 , 6 , 5 , 7 , 10 , 5 , 6 , 8 , 3 , 4 ]

利用集合set的特性

第一种方法(大家第一个都会想到的吧):利用集合set的特性 。

集合set特性:元素不能重复 。

?
1
2
3
4
>>> num_list = [ 1 , 8 , 9 , 1 , 2 , 3 , 4 , 6 , 5 , 7 , 10 , 5 , 6 , 8 , 3 , 4 ]
>>> new_list = list ( set (num_list))
>>> new_list
[ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]

利用字典key的不可重复属性

第二张方法(与集合拥有相同特性的):那么就是字典的键啦 先介绍一下函数dict.fromkeys(序列,设置键对应的值),返回一个由序列的元素作为键,设置的值作为所有键的值的字典,值省略的话所有键的值将默认为None;如果设置了值的话所有的键将会赋予同一个值,看例子:

?
1
2
3
4
5
6
>>> dict1 = dict .fromkeys([ 1 , 2 , 3 , 4 ])
>>> dict1
{ 1 : None , 2 : None , 3 : None , 4 : None }
>>> dict1 = dict .fromkeys([ 1 , 2 , 3 , 4 ], 5 )
>>> dict1
{ 1 : 5 , 2 : 5 , 3 : 5 , 4 : 5 }

那么正式使用字典键的特性进行去重,看例子:

?
1
2
3
4
5
6
7
>>> num_list = [ 1 , 8 , 9 , 1 , 2 , 3 , 4 , 6 , 5 , 7 , 10 , 5 , 6 , 8 , 3 , 4 ]
>>> num_dict = dict .fromkeys(num_list)
>>> num_dict
{ 1 : None , 8 : None , 9 : None , 2 : None , 3 : None , 4 : None , 6 : None , 5 : None , 7 : None , 10 : None }
>>> new_list = list (num_dict.keys())
>>> new_list
[ 1 , 8 , 9 , 2 , 3 , 4 , 6 , 5 , 7 , 10 ]

利用index()获取到的是第一次出现的索引

第三种方式:利用index()获取到的是第一次出现的索引 通过判断列表中值第一次出现的索引值与遍历的计数器的游标cursor值是否相等,相等的话则是第一次出现,否则是重复出现。看例子:

?
1
2
3
4
5
6
7
8
9
10
>>> num_list = [ 1 , 8 , 9 , 1 , 2 , 3 , 4 , 6 , 5 , 7 , 10 , 5 , 6 , 8 , 3 , 4 ]
>>> new_list = []
>>> cursor = 0
>>> while cursor < len (num_list):
...     if num_list.index(num_list[cursor]) = = cursor:
...           new_list.append(num_list[cursor])
...     cursor + = 1
...
>>> new_list
[ 1 , 8 , 9 , 2 , 3 , 4 , 6 , 5 , 7 , 10 ]

到此这篇关于Python实现列表拼接和去重的三种方式的文章就介绍到这了,更多相关Python列表拼接和去重内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://juejin.cn/post/6978509204336148494 。

最后此篇关于Python实现列表拼接和去重的三种方式的文章就讲到这里了,如果你想了解更多关于Python实现列表拼接和去重的三种方式的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com