String 计算数组中每个元素中每个点之间的数字数
我在spreedsheet中有一列IP编号,如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
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']