我对这个问题很好奇:消除列表元素的连续重复,以及如何在Python中实现它.
我想出的是:
list = [1,1,1,1,1,1,2,3,4,4,5,1,2]
i = 0
while i < len(list)-1:
if list[i] == list[i+1]:
del list[i]
else:
i = i+1
Run Code Online (Sandbox Code Playgroud)
输出:
[1, 2, 3, 4, 5, 1, 2]
Run Code Online (Sandbox Code Playgroud)
我觉得还可以.
所以我很好奇,想看看我是否可以删除连续重复的元素并获得此输出:
[2, 3, 5, 1, 2]
Run Code Online (Sandbox Code Playgroud)
为此我做了这个:
list = [1,1,1,1,1,1,2,3,4,4,5,1,2]
i = 0
dupe = False
while i < len(list)-1:
if list[i] == list[i+1]:
del list[i]
dupe = True
elif dupe:
del list[i]
dupe = False
else:
i += 1
Run Code Online (Sandbox Code Playgroud)
但它似乎有点笨拙而不是pythonic,你有更智能/更优雅/更有效的方式来实现它吗?
Python2.7:我想做一些与众不同的事情.大多数人希望将字符串文字转换为更易读的字符串.我想将以下unicode字符串列表转换为它们的文字形式:
他们的代码点表单看起来像这样:
\ u3023\u2344
你会注意到freø̯̯nt在ø下面有两个倒置的短裤.我想特别将该单词转换为其字面形式,以便我可以使用REGEX来删除额外的短语.
我不确定这些东西的术语是什么 - 如果我弄错了,请纠正我.
我将字符串转换a为列表,我希望循环创建 \xe2\x80\x8dtabb = ['a', 'b', 'c', 'a']
a = aaabbbbcccaaa\n\ntaba = list(a)\ntabb = []\n\nfor i in taba:\n for j in range(len(tabb)):\n if not i[j] == i[j-1]:\n tabb.append(i[j])\n\nprint (tabb)\nRun Code Online (Sandbox Code Playgroud)\n\n但显然我的解决方案gives tabb = []
您有更好、更简单的想法来让它发挥作用吗?
\n我有一个字符串Hiiiiiiiiiiii,它可能包含一个字符链,在这里i它重复多次。我想用i一个替换这个 s链i并获取Hi作为输出。另一个例子是eeeeeeemadeeefghddd我想将给定的单词emadefghd作为输出。我怎样才能在 python 中做到这一点?
python ×4
list ×2
regex ×2
duplicates ×1
element ×1
python-2.7 ×1
python-3.x ×1
string ×1
unicode ×1