python列表操作题_python面试题(三)列表操作

本文介绍了Python中列表的各种操作,包括使用set方法、fromkeys和列表推导式进行去重,通过split函数将字符串转换为列表,利用列表推导式找出两个列表的相同和不同元素,一行输出列表内容,以及如何合并和打乱列表。这些技巧对于Python编程非常实用。
摘要由CSDN通过智能技术生成

接上一篇。。。。。。。。。。。。。

0x01:列表的去重操作

al = [1, 1, 2, 3, 1, 2, 4]

#set方法元素去重

al_set = set(al)

print(list(al_set)) #集合不支持索引操作,可以先将之转换为列表

#formkeys方法

al2 = {}.fromkeys(al).keys()

print(list(al2)) #同集合,也是先将之转换成列表

#列表推导式

al3 = []

for a in al:

if a not in al3:

al3.append(a)

print(al3)

输出结果均为:[1, 2, 3, 4]

0x02:把字符串中,除间隔符以外的所有字符转换为一个列表

加入有个字符串s = "1, 2, 3",怎么将他转换成列表['1','2','3']?

这里我们不能直接用list函数,那样会把中间的','间隔符也加入到列表里,这里可以用上篇文章提到过的split函数,只需要把分隔符指定为','就可以了,如下,就可以输出我们想要的结果了

s = "1, 2, 3"

print(s.split(','))

0x03:找出两个数组中相同和不同元素

A = [1, 2, 3, 4, 5]

B = [1, 3, 5, 7, 9, 10]

#找出两list中的相同元素

a = [x for x in A if x in B]

print(a)

#找出两list中的不同元素

b = [y for y in (A+B) if y not in a]

print(b)

#在A中不在B中的元素

c = [m for m in A if m not in B]

print(c)

#在B中不在A中的元素

d = [n for n in B if n not in A]

print(d)

依次输出的结果为:

[1, 3, 5]

[2, 4, 7, 9, 10]

[2, 4]

[7, 9, 10]

0x04:一行输出列表

#一行输出列表

l = ['a', 'b', 'c', 'd', 'e']  #元素是字符类型

print(''.join(l))

m = [1, 2, 3, 4, 5, 6, 7, 8, 9]  #元素不是字符类型

print(''.join(map(str, m))) #map函数,根据提供的函数对制定的序列做映射

n = [[1, 2], [3, [4,5,6]], [5, 6]]#元素是列表类型

print([y for x in n for y in x])

输出结果依次为:

abcde

123456789

[1, 2, 3, [4, 5, 6], 5, 6]

0x05:列表合并

列表可以像字符串那样直接用‘+’连接,也可以用extend方法将一个列表中的元素全部添加到另一个列表中,只不过前者是生成一个新的列表,后者是更新一个列表

#合并列表

a = [1, 5, 7, 9]

b = [2, 2, 6, 8]

print(a+b)

a.extend(b)

print(a)

输出结果均为:[1, 5, 7, 9, 2, 2, 6, 8]

0x06:打乱列表元素

我么可以用random中的shuffle方法对一个列表里面的元素进行打乱,操作如下

#打乱列表元素

from random import shuffle

a = ['a', 1, 'b',5, 6, 9, 78]

shuffle(a)

print(a)

每次运行输出的顺序不同。

(ps:若有写的不对的地方,欢迎大佬随时指正,,,,,xixix)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值