字符串去重方法
# 字符串去重的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)