我有一个关于习语和可读性的问题,似乎有一个针对这个特殊情况的Python哲学冲突:
我想从字典B中构建字典A.如果B中不存在特定的键,则不执行任何操作并继续.
哪种方式更好?
try:
A["blah"] = B["blah"]
except KeyError:
pass
Run Code Online (Sandbox Code Playgroud)
要么
if "blah" in B:
A["blah"] = B["blah"]
Run Code Online (Sandbox Code Playgroud)
"做并请求原谅"与"简单和明确".
哪个更好?为什么?
我是一个蟒蛇新手,所以也许我的问题非常棒.假设我有一个单词列表,我想找到每个单词出现在该列表中的次数.明显的做法是:
words = "apple banana apple strawberry banana lemon"
uniques = set(words.split())
freqs = [(item, words.split().count(item)) for item in uniques]
print(freqs)
Run Code Online (Sandbox Code Playgroud)
但是我发现这个代码不是很好,因为这种方式程序运行两次单词列表,一次构建集合,第二次计算出现次数.当然,我可以编写一个函数来运行列表并进行计数,但这不会那么pythonic.那么,有更高效和pythonic的方式吗?
我正在尝试计算列表中以字母表中每个字母开头的单词数.我尝试过很多东西,似乎没什么用.最终结果应该是这样的:
list = ['the', 'big', 'bad', 'dog']
a: 0
b: 2
c: 0
d: 1
Run Code Online (Sandbox Code Playgroud)
我想我应该用字典做些什么,对吧?
python ×3
count ×2
counting ×1
defaultdict ×1
dictionary ×1
frequency ×1
idioms ×1
readability ×1