Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Это код, который у меня есть до сих пор:
import re
from collections import defaultdict
file = open("mytext.txt","r",encoding="utf-8")
l = []
d = file.read()
x = re.split(r"=+", d)
for i in range(len(x)):
l.append(x[i])
d = defaultdict(list)
for i, line in enumerate(l):
[d[word].append(i) for word in line]
Кажется, он работает, но ключи - это буквы, а значения - это подсписки, в которых встречается буква
from collections import defaultdict
l = [ ["blablabla", "blabliblou"], ["blablablou", "blibloubla"], ["oubabababa", "baboulila"] ]
d = defaultdict(list)
for i, line in enumerate(l):
[d[word].append(i) for word in line]
print(dict(d))
>>> {'blablabla': [0], 'oubabababa': [2], 'blablablou': [1], 'blabliblou': [0], 'baboulila': [2], 'blibloubla': [1]}
Как насчет этого?
from collections import defaultdict
all_dict = defaultdict(list)
for index, val in enumerate(x):
for value in val:
if value not in all_dict:
all_dict[value].append(index)
print(all_dict)
Это даст вам ожидаемый результат:
defaultdict(list,
{'blablabla': [0],
'blabliblou': [0],
'blablablou': [1],
'blibloubla': [1],
'oubabababa': [2],
'baboulila': [2]})