小编Jim*_*ard的帖子

循环内可调用变量的限制

一个非常简单的例子:

n=1
a=n
x=1
y=a+1
while (y-x) <10:
    n+=1
    print(x,y)
    print(n,a)
Run Code Online (Sandbox Code Playgroud)

这将进入一个无限循环:

x= 1 y= 2
n= 2 a= 1
x= 1 y= 2
n= 3 a= 1
x= 1 y= 2
n= 4 a= 1
x= 1 y= 2
n= 5 a= 1
x= 1 y= 2
n= 6 a= 1
x= 1 y= 2
n= 7 a= 1
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,n循环正在更新并且可以调用,但是a没有更新到更新的n值.我想知道为什么会这样.如果y是这样的话也是如此n+1.

python while-loop python-3.x

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

如何使用text strip()函数?

我可以删除数字,但不能删除字母字符:

>>> text
'132abcd13232111'

>>> text.strip('123')
'abcd'
Run Code Online (Sandbox Code Playgroud)

为什么以下不起作用?

>>> text.strip('abcd')
'132abcd13232111'
Run Code Online (Sandbox Code Playgroud)

python string python-3.x

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

AttributeError:模块'pygal'没有属性'Worldmap'

我试着:

import pygal
wm = pygal.Worldmap()
Run Code Online (Sandbox Code Playgroud)

但它引起了:

AttributeError: module 'pygal' has no attribute 'Worldmap'
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这是什么问题?

python python-3.x pygal

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

与 trace_add 等效的跟踪方法“u”参数?

考虑到自 Python 3.6 起不推荐使用tkinter变量类的 trace()方法,应使用新方法:trace_add()

  • trace('w', method) 已经成为 trace_add('write', method)
  • trace('r', method) 已经成为 trace_add('read', method)

我想知道'u'现在如何指定参数?例如,考虑前者:

trace('wu', method)

我在文档或其他任何地方都找不到任何内容。

python tkinter python-3.x python-3.6

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

如何根据第一个和最后一个索引从 4D 数组中提取 2D 数组

我目前有一个 numpy 的 shape 数组(3, 890, 1100, 2)。我想提取位于位置的二维数组,因此当索引和为时,(0, 0-890, 0-1100, 0)我将留下890x1100值的二维数组。140

换句话说,我想访问数组,就好像参数按顺序排列一样(3, 2, 890, 1100),并执行以下操作:

 newArray = array[0][0]
Run Code Online (Sandbox Code Playgroud)

我知道我可以用循环来做到这一点,但想知道是否有一种更“python-esque”的方法来做到这一点。

python numpy

1
推荐指数
1
解决办法
2213
查看次数

基于最大长度和最大总和进行排序

你能帮我搞清楚吗?

q = [[12, 13, 14], [8, 9, 10,11], [2, 3, 4], [5, 6, 7]]
Run Code Online (Sandbox Code Playgroud)

假设我有一个像q这样的列表,我如何根据它进行排序

  1. 子列表的最大长度和
  2. 子列表的最大总和

输出应该是:

q = [[8,9,10,11],[12,13,14][5,6,7],[1,2,3]]
Run Code Online (Sandbox Code Playgroud)

python sorting list

1
推荐指数
1
解决办法
39
查看次数

访问 os.scandir 中的第一个元素

os.scandir用于获取文件夹中的文件列表:

img_list2 = os.scandir('/home/shared/test')
Run Code Online (Sandbox Code Playgroud)

我想获得第一个元素。

我在尝试 img_list2.next()

>>> img_list2.next()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'posix.ScandirIterator' object has no attribute 'next'
Run Code Online (Sandbox Code Playgroud)

所以我试过:

>>> filt = list(img_list2)
>>> type(filt)
<class 'list'>
>>> globals()['filt']
[<DirEntry 'panaroma00010.jpg'>, <DirEntry 'panaroma00014.jpg'>, <DirEntry 'panaroma00004.jpg'>, <DirEntry 'panaroma00013.jpg'>, <DirEntry 'panaroma00007.jpg'>, <DirEntry 'panaroma00011.jpg'>, <DirEntry 'panaroma00012.jpg'>, <DirEntry 'panaroma00006.jpg'>, <DirEntry 'panaroma00009.jpg'>, <DirEntry 'panaroma00001.jpg'>, <DirEntry 'panaroma00003.jpg'>, <DirEntry 'panaroma00005.jpg'>, <DirEntry 'panaroma00002.jpg'>, <DirEntry 'panaroma00008.jpg'>]
>>> filt[1]
<DirEntry 'panaroma00014.jpg'>
>>> 
Run Code Online (Sandbox Code Playgroud)

所以就像在列表中我们可以获得第一个元素值,我们可以从os.scandir?

python python-3.x

1
推荐指数
1
解决办法
3001
查看次数

我什么时候应该重新定义数字?

在Python 2,我可以重新定义的任何数量与所述ctypes模块,例如数23:

import ctypes

value = 2
ob_ival_offset = ctypes.sizeof(ctypes.c_size_t) + ctypes.sizeof(ctypes.c_voidp)
ob_ival = ctypes.c_int.from_address(id(value)+ob_ival_offset)
ob_ival.value = 3

print 1+1
Run Code Online (Sandbox Code Playgroud)

我应该什么时候需要这样做?

python ctypes python-2.7

1
推荐指数
1
解决办法
86
查看次数

当我希望它返回15时,为什么这个表达式返回10?

在Python控制台中,此代码应返回15,但它返回10.有什么问题?

print(sum(range(5)))
Run Code Online (Sandbox Code Playgroud)

python python-3.x

1
推荐指数
1
解决办法
68
查看次数

在python中以2个部分向后拆分字符串

我试图将我的字符串分成 str = 'I HAVE 6'两部分.输出应该
['I HAVE','6']
是没有关于作为输入给出的单词长度的信息.一种方法是将其拆分为三个并添加前两个.还有其他方法吗?

python string split python-3.x

1
推荐指数
1
解决办法
854
查看次数