|
发表于 2020-6-4 15:19:38
python测试7
我们知道用add方法可以给集合增加元素,如:
>>> set1 = {'qwe', 'asd', 'z'}
>>> set1.add('123')
>>> set1
{'123', 'qwe', 'asd', 'z'}
当add已有元素时,则不会有任何变化,这也是集合唯一性的表现,现在有一个全是字符串的集合,你设计程序,当加入一个字符串是集合中已有元素时,会自动在字符串后面加上“_1”再加入元素中,如
set1 = {'qwe', 'asd', 'z'}
#加入'qwe',实际加入qwe_1,集合变成
{'qwe_1', 'qwe', 'asd', 'z'}
进一步,如果已有'qwe'和'qwe_1',再加入'qwe'时,实际加入'qwe_2',以此类推。
'''添加的元素末尾第二位不能带有'_' ,比如'abc_d'。 '''
set1 = {'qwe', 'asd', 'z', 'qwe_1', 'qwe_7','qwe_3'}
a = 'qwe'
if a not in set1:
set1.add(a) #不在集合,直接加入
else: #集合中已有该元素
if a[-2] != '_':#末尾第二个检查是不是'_'
a = a + '_1' #末尾添加_1
if a not in set1:
set1.add(a) #检查集合是不是有了,没有加入集合
else: #集合有了
b =1
while True:
a = a[:-1] + str(int(a[-1])+b)
if a not in set1:
set1.add(a)
break #容易写死循环
else:
b+= 1
print(set1)
|
|