Как посчитать повторяющиеся специальные символы в URL и добавить в список? - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть список из двух веб-сайтов, и я хочу считать '.' точка и '-' дефис, сколько раз он повторялся, и я хочу присвоить это пустому списку для каждой итерации в течение l oop. Когда я выполняю приведенный ниже код, он считает точки и дефисы, но для каждой итерации он считает предыдущее значение и увеличивает количество, например, [1,2,3,6,12 ...], но я хочу хранить значения каждой итерации отдельно в списке, как [ 1,3,2,5 ....] как это сделать?

tdots=[]
tphen = []
dots = 0
phen = 0
named_url = ['www.facebook.com','yahoo.com/index-true']

for i in named_url:
    for j in i:
        if '.' in str(j):
            dots = dots + 1
            Dots = []
            Dots.append(dots)
        else:
            print('No more "."')
    tdots.append(sum(Dots))        
for i in named_url:
    for j in i:
        if '-' in str(j):
            phen = phen + 1
            Phen = []
            Phen.append(phen)
        else:
            print('No more "-"')
    tphen.append(sum(Phen))
print(tdots,'Dots')
print(tphen,'Hyphen')

Ответы [ 3 ]

2 голосов
/ 29 апреля 2020

Попробуйте: -

dots = []
phens = []
named_url = ['www.facebook.com','yahoo.com/index-true']

for name in named_url:
    dots.append(name.count('.'))

for name in named_url:
    phens.append(name.count('-'))

tdots = sum(dots)
tphens = sum(phens)

print(dots, phens, tdots, tphens)

Вывод: -

[2, 1]
[0, 1]
3
1
1 голос
/ 29 апреля 2020

Вы можете использовать collections.Counter, чтобы сделать это проще:

from collections import Counter
named_url = ['www.facebook.com', 'yahoo.com/index-true']
for url in named_url:
    c = Counter(url)
    dots = c["."]
    dash = c["-"]
    print("{} contains: {} dot(s) and {} hyphen(s)".format(url, dots, dash))

Вывод:

www.facebook.com contains: 2 dot(s) and 0 hyphen(s)
yahoo.com/index-true contains: 1 dot(s) and 1 hyphen(s)
1 голос
/ 29 апреля 2020
named_url = ['www.facebook.com','yahoo.com/index-true']
dots_sum = []
hyphens_sum = []

dots = []
hyphens = []
for url in named_url:
    dots.append(url.count('.'))
    hyphens.append(url.count('-'))

print(sum(dots), sum(hyphens))
dots_sum.append(sum(dots))
hyphens_sum.append(sum(hyphens))
dots.clear()
hyphens.clear()

Код, который работает для этого с использованием count , который затем добавляет сумму точек и дефисов, найденных в списке, к двум другим спискам, а затем очищает два списка, которые содержат только числа точек на URL.

...