执行以下代码时出现语法错误.我想在列表理解中打印.如您所见,我使用print()尝试了一种不同的方法(注释掉了一行).但我认为Python 3支持这种语法,因为早期版本的Python将print视为一种语句.
1 import sys 2 import nltk 3 import csv 4 from prettytable import PrettyTable 5 CSV_FILE = sys.argv[1] 6 # Handle any known abbreviations, # strip off common suffixes, etc. 7 transforms = [(', Inc.', ''), (', Inc', ''), (', LLC', ''), (', LLP', '')] 8 csvReader = csv.DictReader(open(CSV_FILE), delimiter=',', quotechar='"') 9 contacts = [row for row in csvReader] 10 companies = [c['Company'].strip() for c in contacts if c['Company'].strip() != ''] 11 for i in range(len(companies)): 12 for transform in transforms: 13 companies[i] = companies[i].replace(*transform) 14 #fields=['Company', 'Freq'] 15 #pt = PrettyTable(fields=fields) 16 #pt.set_field_align('Company', 'l') 17 fdist = nltk.FreqDist(companies) 18 #[pt.add_row([company, freq]) for (company, freq) in fdist.items() if freq > 1] 19 #[print("["+company+","+freq+"]") for (company, freq) in fdist.items() if freq > 1] 20 [print company for (company, freq) in fdist.items() if freq > 1] 21 #pt.printt() ~
Tim Peters.. 11
Python表达式中不会出现任何语句. print
是Python 2中的一种语句,列表推导是一种表达.不可能.例如,您也不能global
在索引表达式中放置语句.
请注意,在Python 2中,您可以放置
from __future__ import print_function
将其print()
视为函数(就像在Python 3中一样).
Python表达式中不会出现任何语句. print
是Python 2中的一种语句,列表推导是一种表达.不可能.例如,您也不能global
在索引表达式中放置语句.
请注意,在Python 2中,您可以放置
from __future__ import print_function
将其print()
视为函数(就像在Python 3中一样).
它不是Python 3中的print语句,它是一个函数.
>>> sys.version '3.4.0a4+ (default:8af2dc11464f, Nov 12 2013, 22:38:21) \n[GCC 4.7.3]' >>> [print(i) for i in range(4)] 0 1 2 3
并返回:
[None, None, None, None]
正如蒂姆·彼得斯所说的那样,没有任何陈述可以用于理解或生成器表达.