我有一个看起来像这样的元组列表:
CODES = (
('apple', 'reddelicious'),
('caramel', 'sweetsticky'),
('banana', 'yellowfruit'),
)
Run Code Online (Sandbox Code Playgroud)
检查该元组中是否存在值的最佳方法是什么?例如,我希望能够说:
'apple' in CODES
Run Code Online (Sandbox Code Playgroud)
并得到真实
为什么'a'.translate({'a':'b'})返回'a'而不是'b'?我正在使用Python 3.
我们有什么方法可以使用type(obj)- > 检测对象是否在python中列表list.
但是我们如何检测对象是否是表单列表的列表:
[['a','b']['a','b'][][]]
Run Code Online (Sandbox Code Playgroud) 为什么CPython(没有关于其他Python实现的线索)有以下行为?
tuple1 = ()
tuple2 = ()
dict1 = {}
dict2 = {}
list1 = []
list2 = []
# makes sense, tuples are immutable
assert(id(tuple1) == id(tuple2))
# also makes sense dicts are mutable
assert(id(dict1) != id(dict2))
# lists are mutable too
assert(id(list1) != id(list2))
assert(id(()) == id(()))
# why no assertion error on this?
assert(id({}) == id({}))
# or this?
assert(id([]) == id([]))
Run Code Online (Sandbox Code Playgroud)
我有一些想法可能,但找不到具体原因.
编辑
进一步证明格伦和托马斯的观点:
[1] id([])
4330909912
[2] x = []
[3] …Run Code Online (Sandbox Code Playgroud) 当脚本因异常退出时,打开的文件(和其他资源)会自动关闭吗?
我想知道在异常处理期间是否需要关闭我的资源.
**编辑:更具体地说,我在我的脚本中创建一个简单的日志文件.我想知道是否需要关注在异常情况下显式关闭日志文件.由于我的脚本有一个复杂的,嵌套的,try/except块,这样做有点复杂,所以如果python,CLIB或操作系统要在脚本崩溃/出错时关闭我的文本文件,我不想浪费太多时间确保文件关闭.
如果Python手册中有一个部分讨论这个问题,请转介我,但我找不到它.
我有一本字典:
d = {1: ["Spices", math.floor(random.gauss(40, 5))],
2: ["Other stuff", math.floor(random.gauss(20, 5))],
3: ["Tea", math.floor(random.gauss(50, 5))],
10: ["Contraband", math.floor(random.gauss(1000, 5))],
5: ["Fruit", math.floor(random.gauss(10, 5))],
6: ["Textiles", math.floor(random.gauss(40, 5))]
}
Run Code Online (Sandbox Code Playgroud)
我想将它打印出来,以便与标题很好地对齐.我可以将标题添加到字典中并始终确保它们排在最前面吗?我已经看到了几种垂直方式,但是我希望它的最大列宽接近max str()或int().
例:
Key_ _ __ _ __ _ Label _ __ _ __ _ ___ Number
1 _ __ _ __ _ ___ 香料_ __ _ _ _ _ _ _ 42
2 _ _ _ _ _ _ _ ___ 其他东西_ ____ _16
等
显然我甚至不能手动在这个编辑器里面做这个,但我希望这个想法能够实现.我也不是真的想要__.只是一个占位符.
谢谢大家.
考虑:
>>> timeit.timeit('from win32com.client import Dispatch', number=100000)
0.18883283882571789
>>> timeit.timeit('import win32com.client', number=100000)
0.1275979248277963
Run Code Online (Sandbox Code Playgroud)
仅导入Dispatch函数而不是整个模块需要更长的时间,这似乎是反直觉的.有人可以解释为什么单一功能的开销是如此糟糕?谢谢!
在c我可以做的事情:
int minn(int n, int m){
return (n<m)? n:m
}
Run Code Online (Sandbox Code Playgroud)
但是在python中我无法实现相同的目标:
def minn(n,m):
return n if n<m else return m
Run Code Online (Sandbox Code Playgroud)
这给了 Syntax Error
我知道我可以这样做:
def minn(n,m):
return min(n,m)
Run Code Online (Sandbox Code Playgroud)
我的问题是,我不能在python中使用三元运算符.
我有这个:
dates = soup.findAll("div", {"id" : "date"})
Run Code Online (Sandbox Code Playgroud)
不过,我需要的id是一个通配符搜索,因为id可以date_1,date_2等等.
我正在努力解决Python中的一个小问题(我的程序现在是3.2.3版本).
我有一个看起来像这样的字典(这只是一个例子,实际上是从这里的另一篇文章中获取的):
[{"abc":"movies"}, {"abc": "sports"}, {"abc": "music"}, {"xyz": "music"}, {"pqr":"music"}, {"pqr":"movies"},{"pqr":"sports"}, {"pqr":"news"}, {"pqr":"sports"}]
Run Code Online (Sandbox Code Playgroud)
我想简单地打印()一个唯一值列表,消除重复.在此列表的末尾,我想在字典中打印唯一值的数量:
movies
sports
music
news
4
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.我发现这里有一些其他的帖子有点相关,但我不太清楚Python是否适用于这个特定的问题.