很抱歉,您没有提供需要改写的句子。请提供您希望改写的句子,我将为您改写为一个长尾词的。

2026-05-28 20:341阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计901个文字,预计阅读时间需要4分钟。

很抱歉,您没有提供需要改写的句子。请提供您希望改写的句子,我将为您改写为一个长尾词的。

家庭好,我是Python进阶者。一、前言前几天在Python编程交流群里,有个叫【周例】的成员问了一个Python列表的问题,如下所示。

很抱歉,您没有提供需要改写的句子。请提供您希望改写的句子,我将为您改写为一个长尾词的。

以下是他的原始内容:pythona=[1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]

大家好,我是Python进阶者。

一、前言

前几天在Python钻石流群有个叫的粉丝问了Python列表的问题,如下图所示。

下图是他的原始内容。

a = [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]
b = [0, 1, 2, 0, 1, 2, 0, 1, 0, 0, 1, 2, 3, 4, 5]

二、实现过程

这里给出一个方法,给出的代码如下所示:

list1=[1,1,1,0,0,0,1,1,0,1,1,1,1,1,1]
result=[0]
flag=0
for i in range(1,len(list1)):
if list1[i]==list1[i-1]:
flag+=1
else:
flag=0
result.append(flag)
print(result)

其实这个​​flag​​解法之前在最强王者群里边分享过,确实是个好方法,真是用处好多呢!

后来还有一个大佬也给出了一个代码,思路也非常不错。

list1 = [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]
list2 = []
l = 0
for i in range(len(list1)):
l = l + 1 if list1[i] == list1[i-1] and i != 0 else 0
list2.append(l)
print(list2)

本质上来说的话,这个方法和的一模一样,只不过他这里使用了一行代码,将判断简化了。

这里还有大佬给的一份代码,换汤不换药,如下所示:

list1 = [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]
result = [0] * len(list1)
result[0] = 0
for i in range(1, len(list1)):
if list1[i] != list1[i-1]:
result[i] = 0
else:
result[i] = result[i-1] + 1
print(result)

后来月神还给了一个逻辑性比较强的解法,代码如下所示:

list1 = [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]
result = [0] * len(list1) # [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
pre_num = 0
for num in range(len(list1)):
# print("list1[num]:", list1[num])
# print("list1[pre_num]: ", list1[pre_num])
print(num, pre_num)
if list1[num] != list1[pre_num]:
pre_num = num
result[num] = num - pre_num
print(result)
print(result)

这个方法就是判断当前的数据和之前的​​pre_num​​数据是否相同,不相同就将​​num​​赋值给​​pre_num​​,以此类推。

后来还有大佬使用了内置函数,也把这个问题解决了,代码如下所示:

from functools import reduce
from itertools import groupby

list1 = [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]
ret = reduce(lambda x, y: x + y, [[i for i in range(len(list(num)))] for item, num in groupby(list1)])
print(ret)

一般人还真是想不到!

三、总结

大家好,我是Python进阶者。这篇文章主要盘点一个Python列表统计小题目,文中针对该问题给出了具体的解析和代码演示,一共5个方法,帮助粉丝顺利解决了问题。如果你还有其他解法,欢迎私信我。

最后感谢粉丝提问,感谢、、、、大佬给出的代码和具体解析,感谢、、、、等人参与学习交流。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

本文共计901个文字,预计阅读时间需要4分钟。

很抱歉,您没有提供需要改写的句子。请提供您希望改写的句子,我将为您改写为一个长尾词的。

家庭好,我是Python进阶者。一、前言前几天在Python编程交流群里,有个叫【周例】的成员问了一个Python列表的问题,如下所示。

很抱歉,您没有提供需要改写的句子。请提供您希望改写的句子,我将为您改写为一个长尾词的。

以下是他的原始内容:pythona=[1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]

大家好,我是Python进阶者。

一、前言

前几天在Python钻石流群有个叫的粉丝问了Python列表的问题,如下图所示。

下图是他的原始内容。

a = [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]
b = [0, 1, 2, 0, 1, 2, 0, 1, 0, 0, 1, 2, 3, 4, 5]

二、实现过程

这里给出一个方法,给出的代码如下所示:

list1=[1,1,1,0,0,0,1,1,0,1,1,1,1,1,1]
result=[0]
flag=0
for i in range(1,len(list1)):
if list1[i]==list1[i-1]:
flag+=1
else:
flag=0
result.append(flag)
print(result)

其实这个​​flag​​解法之前在最强王者群里边分享过,确实是个好方法,真是用处好多呢!

后来还有一个大佬也给出了一个代码,思路也非常不错。

list1 = [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]
list2 = []
l = 0
for i in range(len(list1)):
l = l + 1 if list1[i] == list1[i-1] and i != 0 else 0
list2.append(l)
print(list2)

本质上来说的话,这个方法和的一模一样,只不过他这里使用了一行代码,将判断简化了。

这里还有大佬给的一份代码,换汤不换药,如下所示:

list1 = [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]
result = [0] * len(list1)
result[0] = 0
for i in range(1, len(list1)):
if list1[i] != list1[i-1]:
result[i] = 0
else:
result[i] = result[i-1] + 1
print(result)

后来月神还给了一个逻辑性比较强的解法,代码如下所示:

list1 = [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]
result = [0] * len(list1) # [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
pre_num = 0
for num in range(len(list1)):
# print("list1[num]:", list1[num])
# print("list1[pre_num]: ", list1[pre_num])
print(num, pre_num)
if list1[num] != list1[pre_num]:
pre_num = num
result[num] = num - pre_num
print(result)
print(result)

这个方法就是判断当前的数据和之前的​​pre_num​​数据是否相同,不相同就将​​num​​赋值给​​pre_num​​,以此类推。

后来还有大佬使用了内置函数,也把这个问题解决了,代码如下所示:

from functools import reduce
from itertools import groupby

list1 = [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]
ret = reduce(lambda x, y: x + y, [[i for i in range(len(list(num)))] for item, num in groupby(list1)])
print(ret)

一般人还真是想不到!

三、总结

大家好,我是Python进阶者。这篇文章主要盘点一个Python列表统计小题目,文中针对该问题给出了具体的解析和代码演示,一共5个方法,帮助粉丝顺利解决了问题。如果你还有其他解法,欢迎私信我。

最后感谢粉丝提问,感谢、、、、大佬给出的代码和具体解析,感谢、、、、等人参与学习交流。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。