我正在运行一段代码,意外地在程序的某个部分出现了逻辑错误.在调查该部分时,我创建了一个测试文件来测试正在运行的语句集,并发现一个看起来非常奇怪的异常错误.
我测试了这个简单的代码:
array = [1, 2, 2, 4, 5] # Original array
f = (x for x in array if array.count(x) == 2) # Filters original
array = [5, 6, 1, 2, 9] # Updates original to something else
print(list(f)) # Outputs filtered
Run Code Online (Sandbox Code Playgroud)
输出是:
>>> []
Run Code Online (Sandbox Code Playgroud)
是的,没什么.我期待过滤器理解能够在数组中获取数量为2的项并输出它,但我没有得到:
# Expected output
>>> [2, 2]
Run Code Online (Sandbox Code Playgroud)
当我评论第三行再次测试时:
array = [1, 2, 2, 4, 5] # Original array
f = (x for x in array if array.count(x) == 2) # Filters original
### array …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Python中创建无限循环的各种方法(除了通常之外while True
),并提出了这个想法:
x = {0: None}
for i in x:
del x[i]
x[i+1] = None # Value doesn't matter, so I set it to None
print(i)
Run Code Online (Sandbox Code Playgroud)
在纸面上,我找到了无限循环的方式:
+ 1
将是具有None
更新字典的值的新键.在我看来,这应该以一种无限循环的方式输出自然数:
0
1
2
3
4
5
.
.
.
Run Code Online (Sandbox Code Playgroud)
我认为这个想法很聪明,但是当我在Python 3.6上运行时,它会输出:
0
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
是的,它在5次迭代后以某种方式停止了.显然,循环的代码块中没有基本条件或标记值,那么为什么Python只运行此代码5次?
我正在创建一个程序,它迭代图像的宽度和高度,并使用一组键.
这是一个例子:
width = [0,1,2,3,4,6,7,8,9]
height = [0,1,2,3,4]
keys = [18,20,11]
Run Code Online (Sandbox Code Playgroud)
宽度和高度是一个整数范围,直到宽度和高度的大小.键是任何一组数字(实际上是ASCII值),但不是有序数字.
我想输出是这样的:
0 0 18
0 1 20
0 2 11
0 3 18
0 4 20
1 0 11
1 1 18
. . ..
9 0 20
9 1 11
9 2 18
9 3 20
9 4 11
Run Code Online (Sandbox Code Playgroud)
如您所见,宽度和高度可以使用嵌套for循环生成,而键可以在彼此之间循环.
这是我的解决方案:
w = [0,1,2,3,4,6,7,8,9]
h = [0,1,2,3,4]
k = [18,20,11]
kIndex = 0
for i in w:
for j in h:
print(i,j,k[kIndex])
# Cycle through the keys …
Run Code Online (Sandbox Code Playgroud) 我需要制作图像的副本来操作它,但是保存原始图像和打开复制的图像的像素值似乎有所不同:
from PIL import Image
# Open original image
img = Image.open("mountain.jpg")
data = img.load()
# Display individual pixels
print("Pixel 1: {}".format(data[0,0]))
print("Pixel 2: {}".format(data[0,1]))
print("Pixel 3: {}".format(data[0,2]))
# Makes a copy of the input image and loads the copied image's pixel map
copyImage = img.copy()
copyImage.save('copy.jpg')
copyImage.close()
# Opens the copied image that was saved earlier and its pixel map
copy = Image.open("copy.jpg")
copy_data = copy.load()
print()
# Display copied images' individual pixels
print("Pixel 1 (copy): {}".format(copy_data[0,0]))
print("Pixel 2 …
Run Code Online (Sandbox Code Playgroud)