我已经完成了关于堆栈溢出的研究,但是找不到适合我的答案,即使过去已经发布了类似的问题。我的问题是我想添加一个字符串值,我从一个for循环中获取字符串值,该循环遍历列表并匹配正则表达式。我想将它们添加到一个组合的值列表中,我正在使用一个干净的函数来处理表单的提交,但是当数据打印到我的终端时它会出现如下:
['#example']
['#test']
当我希望这些值打印时:
['#example', '#test',]
这是我在views.py中的代码
def clean(self):
data = self.cleaned_data
regex = re.compile("\B#\w\w+")
tweeters = data['tweets']
split_tweets = tweeters.split()
for x in split_tweets:
if re.search(regex, x):
master_list = [x]
print master_list
答案 0 :(得分:2)
您需要append
到列表,否则您只是丢掉所有以前的值
def clean(self):
data = self.cleaned_data
regex = re.compile("\B#\w\w+")
tweeters = data['tweets']
split_tweets = tweeters.split()
master_list = []
for x in split_tweets:
if re.search(regex, x):
master_list.append(x)
print master_list
您也可以在此处使用列表推导
def clean(self):
data = self.cleaned_data
regex = re.compile("\B#\w\w+")
tweeters = data['tweets']
split_tweets = tweeters.split()
master_list = [x for x in split_tweets if re.search(regex, x)]
print master_list
答案 1 :(得分:1)
请改为:
def clean(self):
data = self.cleaned_data
regex = re.compile("\B#\w\w+")
tweeters = data['tweets']
split_tweets = tweeters.split()
master_list = []
for x in split_tweets:
if re.search(regex, x):
master_list.append(x)
print master_list
您需要将元素附加到列表而不是影响新的“一元素列表”[x]到master_list,它会被下一个值覆盖
答案 2 :(得分:1)
你正在做一些奇怪的事情。为什么要继续重新分配list
?在循环之前初始化list
,在循环内初始化append()
,并在循环之后打印整个东西。
master_list = []
for x in split_tweets:
if re.search(regex, x):
master_list.append(x)
print master_list