Как подсчитать перекрывающиеся значения из вложенного списка или кортежа для распечатки = - PullRequest
0 голосов
/ 01 апреля 2020
    alterneuTabelle = [list(value for value in file if value) for file in neueTabelleResult]

из SQL я извлекаю данные и передаю alterneutabelle, потому что я хотел удалить пустые строки в neueTabellerResult.

alterneuTabelle Теперь выглядит так:

  alterneutabelle[["Area1","Sport", "Math", "Politics" ]["Area2","Sport","Fun","Party"]["Area3","Fun", "Sport", "Math","Politics"]]

Примечание: у меня есть около 40 областей в базе данных SQL, и те, у кого перекрывающиеся значения с моим вводом, будут отображаться. это все еще хорошо.

Теперь я хочу посчитать% от количества попаданий выбранного входа, сделанного с одной областью, и вернуть его (возможно, добавив его в конец)

Ожидается: Мой вход: Party и Sport.

Выход:

["Area1", "Sport", "Math", "Politics", 33%]

[" Area2 "," Sport "," Fun "," Party ", 67%]

[" Area3 "," Fun "," Sport "," Math "," Politics ", 25%]

Я хочу поработать с% позже, чтобы дать рекомендацию о том, где go.

Проблема, которая у меня сейчас возникает, заключается в том, что я не знаю, как это сделать. я попытался использовать условие if, а затем сосчитать его, но это не сработало.

   for i in alterneuTabelle:
        for x in i:
            if (x==pick1 or x==pick2 or x==pick3 or x==pick4 or x==pick5):
                b= b+1
                a.append(b)
                b=0
            elif (x==pick1 or x==pick2 or x==pick3 or x==pick4 and x!=pick5):
                b= b+1
                a.append(b)
                b=0
            elif (x==pick1 or x==pick2 or x==pick3 and x!=pick4 and x!=pick5):
                b= b+1
                a.append(b)
                b=0
            elif (x==pick1 or x==pick2 and x!=pick3 and x!=pick4 and x!=pick5):
                b= b+1
                a.append(b)
                b=0
            elif (x==pick1 and x!=pick2 and x!=pick3 and x!=pick4 and x!=pick5):
                b= b+1
                a.append(b)
                b=0

Должен ли я работать с кортежем из neueTabelleResult и добавить проценты до удаления пустой строки?

любая помощь приветствуется:)

1 Ответ

0 голосов
/ 01 апреля 2020
queries = ["Party", "Sport"]
docs = [["Area1","Sport", "Math", "Politics" ]["Area2","Sport","Fun","Party"]["Area3","Fun", "Sport", "Math","Politics"]]

counts = [0] * len(docs)
for i, doc in enumerate(docs):
    for q in queries:
        counts[i] += doc.count(q)

docs_with_p = [l + [c / (len(l) - 1)] for l, c in zip(docs, count)]

создаст новый список docs_with_p с процентом (согласно len подсписка - 1, чтобы удалить «Площадь» из процента), добавленным в конец каждого подсписка ( документ). Тем не менее, вы, вероятно, должны просто сделать словарь.

docs_to_p = {l: c / (len(l) - 1) for l, c in zip(docs, count)}

, так как, вероятно, будет проще использовать все, что будет после этого.

...