[Python] 实现字符串与列表数据去重

字符串去重方法

# 字符串去重的5种方法
# 1.通过for循环遍历字符串去重
name = "王李张李陈王杨张吴周王刘赵黄吴杨"
new_name = ''
for char in name:
    if char not in new_name:  # 如果不在新的字符串中
        new_name += char  # 拼接到新字符串中的末尾
print(new_name)

# 2.通过while循环遍历字符串去重
name = "王李张李陈王杨张吴周王刘赵黄吴杨"
new_name = ''
i = 0
while i <= len(name) - 1:
    if name[i] not in new_name:
        new_name += name[i]
    i += 1
print(new_name)

# 3.使用列表的方法去重
name = "王李张李陈王杨张吴周王刘赵黄吴杨"
new_name = ''
name_set = set(name)  # 对字符串进行去重
print("".join(sorted(name_set, key=name.index)))  # 按照name字符串下标进行排序

# 4.在原字符串中直接删除
name = "王李张李陈王杨张吴周王刘赵黄吴杨"
length = len(name)  # 字符串下标的总长度
for s in name:
    if name[0] in name[1:length]:
        name = name[1:length]
    else:
        name = name[1:length] + name[0]
print(name)  # 这个的话没有按照原来的顺序进行排列 感觉不是太好

# 5.使用fromkeys()方法把字符串转成字典
name = "王李张李陈王杨张吴周王刘赵黄吴杨"
zd = {}.fromkeys(name)
my_list = list(zd.keys())
print("".join(my_list))

列表的去重方法

# 列表的去重方法
# 定义一个列表:下面的各种方法都将使用该列表作为操作数据
city = ['上海', "广州", "上海", "成都", "上海", "上海", "北京", "上海", "广州", "北京", "上海"]

# 方法1: for循环语句
new_city = []
for item in city:
    if item not in new_city:
        new_city.append(item)
print(new_city)

# 方法2: set()方法 改变原来的顺序
print(list(set(city)))

# 方法3: set()方法 不改变原来数据的顺序
city_set = set(city)
new_city = sorted(city_set, key=city.index)
print(new_city)

# 方法4: count()方法统计并删除,需要先排序(改变原来顺序)
city.sort()
for x in city:
    while city.count(x) > 1:
        del city[city.index(x)]
print(city)

# 方法5: 把列表转成字典
my_list = list({}.fromkeys(city).keys())
print(my_list)

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值