我越来越多地使用Python,并且我一直__all__在不同的__init__.py文件中看到变量集.有人可以解释这是做什么的吗?
在C中,我们可以找到的大小int,char等我想知道如何获得物体的大小就像一个字符串,整数,等在Python.
我使用的XML文件包含指定值大小的大小字段.我必须解析这个XML并进行编码.当我想更改特定字段的值时,我将检查该值的大小字段.在这里,我想比较一下我输入的新值是否与XML中的值相同.我需要检查新值的大小.在字符串的情况下,我可以说它的长度.但是在int,float等的情况下我很困惑.
如果元组是不可变的,那为什么它可以包含可变项?
这似乎是一个矛盾,当一个可变项如列表被修改时,它所属的元组维持不可变.
检查字符串x是否为子串的Pythonic方法y是:
if x in y:
Run Code Online (Sandbox Code Playgroud)
如果找到x就相当于a,b,c,d,e,f或g也是Python的:
if x in [a,b,c,d,e,f,g]:
Run Code Online (Sandbox Code Playgroud)
但是,如果检查一些字符串x包含两种a,b,c,d,e,f或g看起来笨重:
if a in x or b in x or c in x or d in x or e in x or f in x or g in x
Run Code Online (Sandbox Code Playgroud)
是否有更多Pythonic方法检查字符串是否x包含列表元素? …
我有点好奇知道为什么Django 1.9用设置,URL和其他配置文件中的lists []替换了元组()
我刚升级到Django 1.9并发现了这些变化.他们背后的逻辑是什么?
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles'
]
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
Run Code Online (Sandbox Code Playgroud)
urls.py
urlpatterns = [
url(r'^', admin.site.urls),
]
Run Code Online (Sandbox Code Playgroud)
这些变化有什么不同吗?
Python []是列表还是数组?
索引O(1)的访问时间是否像数组一样,O(n)是否像列表一样?
是将O(1)像列表一样追加/调整大小,还是像数组一样调整O(n),还是可以管理O(1)来访问和调整大小?
我在这里读到 Python中的数组访问速度非常慢.然而,当我使用字典(Python的字典假设非常快)和列表编写了一个递归的fibonacci过程的memoized版本时,它们有相同的时间.为什么是这样?
Python元组的访问时间是否比python列表快?
我有一个非常大的python脚本,200K,我想尽可能少使用内存.它看起来像:
# a lot of data structures
r = [34, 78, 43, 12, 99]
# a lot of functions that I use all the time
def func1(word):
return len(word) + 2
# a lot of functions that I rarely use
def func1(word):
return len(word) + 2
# my main loop
while 1:
# lots of code
# calls functions
Run Code Online (Sandbox Code Playgroud)
如果我把我很少使用的函数放在模块中,并且只在必要时动态导入它们,我就无法访问数据.就我而言,这就是我的意思.
我是python的新手.
任何人都可以把我放在正确的道路上吗?如何打破这个大脚本,以便它使用更少的内存?是否值得将很少使用的代码放在模块中,只在需要时调用它们?
请考虑以下示例:
def main_list(error_type):
try:
if error_type == 'runtime':
raise RuntimeError("list error")
if error_type == 'valueerror':
raise ValueError("list error")
except [RuntimeError, ValueError] as e:
print str(e)
def main_tuple(error_type):
try:
if error_type == 'runtime':
raise RuntimeError("tuple error")
if error_type == 'valueerror':
raise ValueError("tuple error")
except (RuntimeError, ValueError) as e:
print str(e)
main_tuple('runtime')
main_tuple('valueerror')
main_list('runtime')
main_list('valueerror')
Run Code Online (Sandbox Code Playgroud)
元组是处理多种异常类型的正确方法.使用多个异常类型的列表不会导致处理.
我想知道为什么Python语法需要多个异常类型的元组.该文件说,它使用一个元组,因此,也许它只是"从来就没有使用列表,而不是一个元组的实现."
对我来说似乎也是合理的,至少在概念上也可以在这种情况下使用列表.
有没有理由为什么Python使用元组而不是列表来处理这种情况?
python ×10
list ×4
tuples ×3
python-2.7 ×2
python-3.x ×2
django ×1
django-1.9 ×1
exception ×1
if-statement ×1
immutability ×1
internals ×1
memory ×1
module ×1
namespaces ×1
object ×1
optimization ×1
organization ×1
package ×1
performance ×1
sizeof ×1
space ×1
substring ×1
syntax ×1
time ×1