小编Ash*_*ary的帖子

检查元组的元组中是否存在元素

我有一个看起来像这样的元组列表:

CODES = (
    ('apple', 'reddelicious'),
    ('caramel', 'sweetsticky'),
    ('banana', 'yellowfruit'),
)
Run Code Online (Sandbox Code Playgroud)

检查该元组中是否存在值的最佳方法是什么?例如,我希望能够说:

'apple' in CODES
Run Code Online (Sandbox Code Playgroud)

并得到真实

python list

29
推荐指数
2
解决办法
3万
查看次数

为什么str.translate不能在Python 3中运行?

为什么'a'.translate({'a':'b'})返回'a'而不是'b'?我正在使用Python 3.

python python-3.x

28
推荐指数
1
解决办法
3万
查看次数

检查对象是否是python中的列表列表?

我们有什么方法可以使用type(obj)- > 检测对象是否在python中列表list.

但是我们如何检测对象是否是表单列表的列表:

[['a','b']['a','b'][][]]
Run Code Online (Sandbox Code Playgroud)

python list

27
推荐指数
2
解决办法
5万
查看次数

为什么CPython中的id({})== id({})和id([])== id([])?

为什么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)

python identity cpython python-internals

26
推荐指数
2
解决办法
1787
查看次数

在异常退出期间文件是否关闭?

当脚本因异常退出时,打开的文件(和其他资源)会自动关闭吗?

我想知道在异常处理期间是否需要关闭我的资源.

**编辑:更具体地说,我在我的脚本中创建一个简单的日志文件.我想知道是否需要关注在异常情况下显式关闭日志文件.由于我的脚本有一个复杂的,嵌套的,try/except块,这样做有点复杂,所以如果python,CLIB或操作系统要在脚本崩溃/出错时关闭我的文本文件,我不想浪费太多时间确保文件关闭.

如果Python手册中有一个部分讨论这个问题,请转介我,但我找不到它.

python file

26
推荐指数
2
解决办法
1万
查看次数

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

显然我甚至不能手动在这个编辑器里面做这个,但我希望这个想法能够实现.我也不是真的想要__.只是一个占位符.
谢谢大家.

python dictionary python-3.x

25
推荐指数
4
解决办法
7万
查看次数

为什么从模块导入函数比整个模块本身需要更长的时间?

考虑:

>>> 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函数而不是整个模块需要更长的时间,这似乎是反直觉的.有人可以解释为什么单一功能的开销是如此糟糕?谢谢!

python performance python-import python-internals

25
推荐指数
2
解决办法
1237
查看次数

使用三元运算符返回语句

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中使用三元运算符.

python ternary-operator

24
推荐指数
2
解决办法
2万
查看次数

Python BeautifulSoup:通配符属性/ id搜索

我有这个:

dates = soup.findAll("div", {"id" : "date"})
Run Code Online (Sandbox Code Playgroud)

不过,我需要的id是一个通配符搜索,因为id可以date_1,date_2等等.

python beautifulsoup

24
推荐指数
1
解决办法
2万
查看次数

打印Python字典中的所有唯一值

我正在努力解决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是否适用于这个特定的问题.

python dictionary

24
推荐指数
4
解决办法
5万
查看次数