String 计算数组中每个元素中每个点之间的数字数

String 计算数组中每个元素中每个点之间的数字数,string,pandas,dataframe,for-loop,count,String,Pandas,Dataframe,For Loop,Count,我在spreedsheet中有一列IP编号,如 IP 107.57.251.192 219.209.105.108 96.138.34.175 172.135.215.244 89.83.162.207 53.197.57.183 172.53.157.32 我把它们放在一个数组中,就像 array=['107.57.251.192', '219.209.105.108', '96.138.34.175', '172.135.215.244', '89.83.162.207', '53.197

我在spreedsheet中有一列IP编号,如

IP
107.57.251.192
219.209.105.108
96.138.34.175
172.135.215.244
89.83.162.207
53.197.57.183
172.53.157.32
我把它们放在一个数组中,就像

array=['107.57.251.192', '219.209.105.108', '96.138.34.175', '172.135.215.244', '89.83.162.207', '53.197.57.183', '172.53.157.32']
现在我需要创建新的数组,让我们调用它

array2=['3sign.2sign.3sign.3sign', '3sign.3sign.3sign.3sign'...]
所以我想计算数组中每个ID号的点之间的数字

我找到了多个具有.count函数的源,但不明白如何在迭代示例中使用它

count1=0
count2=0
count3=0
count4=0

for i in range(len(array)):
    array2[i] = array[i]
    for element in len(array2[i]):
        array2[i] = pd.Series.str.
我想,在上面的代码中,我将首先将元素分配给新数组,然后对于具有新迭代的每个元素,我将生成一个函数来计算4个计数器,因为每个点之间的IP编号中有4个部分。这可能是个坏主意,效率不够,但我从Python开始。

将列表理解与join as结合使用:

或:


可以将正则表达式与re.sub一起使用


您想如何存储计数?在字典里?逗号分隔列表??好问题,现在我明白它很愚蠢,因为count1,count2。。。将为数组的每个元素更改。这是唯一的想法,如何使对象分配数量的数字。结果应该是111.11.1.111--。。3信号2信号1信号3信号。我真的不需要存储每个元素的计数。为我工作!谢谢!
arr = ['.'.join([str(len(x))+'sign' for x in i.split('.')])  for i in array]

print(arr)
['3sign.2sign.3sign.3sign',
 '3sign.3sign.3sign.3sign',
 '2sign.3sign.2sign.3sign',
 '3sign.3sign.3sign.3sign',
 '2sign.2sign.3sign.3sign',
 '2sign.3sign.2sign.3sign',
 '3sign.2sign.3sign.2sign']
arr = ['.'.join(['1'*len(x) for x in i.split('.')])  for i in array]

print(arr)
['111.11.111.111',
 '111.111.111.111',
 '11.111.11.111',
 '111.111.111.111',
 '11.11.111.111',
 '11.111.11.111',
 '111.11.111.11']
import re

[
    re.sub(r'(\d+)', lambda x: f'{len(x.group(1))}sign', el) for el in array
]
['3sign.2sign.3sign.3sign',
 '3sign.3sign.3sign.3sign',
 '2sign.3sign.2sign.3sign',
 '3sign.3sign.3sign.3sign',
 '2sign.2sign.3sign.3sign',
 '2sign.3sign.2sign.3sign',
 '3sign.2sign.3sign.2sign']