所以我只是遇到了一些奇怪的Python特性,并想要对它进行一些澄清.
以下数组操作有点有意义:
p = [1,2,3]
p[3:] = [4]
p = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
我想它实际上只是将这个值附加到最后,对吗?
但是,我为什么要这样做呢?
p[20:22] = [5,6]
p = [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)
更是如此:
p[20:100] = [7,8]
p = [1,2,3,4,5,6,7,8]
Run Code Online (Sandbox Code Playgroud)
这似乎是错误的逻辑.这似乎应该抛出错误!
任何解释?
- 这只是Python的奇怪之处吗?
- 有目的吗?
- 我是否以错误的方式思考这个问题?
如果我制作两个函数列表:
def makeFun(i):
return lambda: i
a = [makeFun(i) for i in range(10)]
b = [lambda: i for i in range(10)]
Run Code Online (Sandbox Code Playgroud)
为什么名单a和b不相等?
例如:
>>> a[2]()
2
>>> b[2]()
9
Run Code Online (Sandbox Code Playgroud) 我想在python中将多个json文件合并为一个文件。我想要做的事情是如果有几个 .json 文件,例如:
# temp1.json
[{'num':'1', 'item':'smartphone','data':'2019-01-01'},
{'num':'2', 'item':'smartphone','data':'2019-01-02'},
{'num':'3', 'item':'smartphone','data':'2019-01-03'},
{'num':'4', 'item':'smartphone','data':'2019-01-04'}]
# temp2.json
[{'num':'5', 'item':'smartphone','data':'2019-01-05'},
{'num':'6', 'item':'smartphone','data':'2019-01-06'},
{'num':'7', 'item':'smartphone','data':'2019-01-07'}]
# temp3.json
[{'num':'8', 'item':'smartphone','data':'2019-01-08'},
{'num':'9', 'item':'smartphone','data':'2019-01-09'},
{'num':'10', 'item':'smartphone','data':'2019-01-10'},
{'num':'11', 'item':'smartphone','data':'2019-01-11'},
{'num':'12', 'item':'smartphone','data':'2019-01-12'}]
Run Code Online (Sandbox Code Playgroud)
我想得到的 result.json 文件应该是这样的:
# result.json
[{'num':'1', 'item':'smartphone','data':'2019-01-01'},
{'num':'2', 'item':'smartphone','data':'2019-01-02'},
{'num':'3', 'item':'smartphone','data':'2019-01-03'},
{'num':'4', 'item':'smartphone','data':'2019-01-04'},
{'num':'5', 'item':'smartphone','data':'2019-01-05'},
{'num':'6', 'item':'smartphone','data':'2019-01-06'},
{'num':'7', 'item':'smartphone','data':'2019-01-07'},
{'num':'8', 'item':'smartphone','data':'2019-01-08'},
{'num':'9', 'item':'smartphone','data':'2019-01-09'},
{'num':'10', 'item':'smartphone','data':'2019-01-10'},
{'num':'11', 'item':'smartphone','data':'2019-01-11'},
{'num':'12', 'item':'smartphone','data':'2019-01-12'}]
Run Code Online (Sandbox Code Playgroud)
我得到的 result.json 文件是:
# result.json
[[{'num':'1', 'item':'smartphone','data':'2019-01-01'},
{'num':'2', 'item':'smartphone','data':'2019-01-02'},
{'num':'3', 'item':'smartphone','data':'2019-01-03'},
{'num':'4', 'item':'smartphone','data':'2019-01-04'}],
[{'num':'5', 'item':'smartphone','data':'2019-01-05'},
{'num':'6', 'item':'smartphone','data':'2019-01-06'},
{'num':'7', …Run Code Online (Sandbox Code Playgroud) 当我运行我的代码时,我收到以下错误消息。
Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/MyDevWork/PygamesRelated/game_1.py", line 29, in <module>
elif event.key == pygame.K_s:
AttributeError: 'Event' object has no attribute 'key'
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
import pygame
pygame.init()
screen = pygame.display.set_mode((720, 480))
clock = pygame.time.Clock()
FPS = 60
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
rect = pygame.Rect((0, 0), (32, 32))
image = pygame.Surface((32, 32))
image.fill(WHITE)
while True:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
quit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_w:
rect.move_ip(0, -2) …Run Code Online (Sandbox Code Playgroud) 我想问一下这个功能:
df.sample(frac=0.5, replace=True, random_state=1)
Run Code Online (Sandbox Code Playgroud)
可以作为对 DataFrame 进行采样时的选项。
在 pandas参考资料中,它说:
有或没有更换的样品。
这意味着什么?它有什么用途?
这个问题不同于将列表/嵌套列表转换为不嵌套的列表(这会产生一组非常具体的响应,无法解决我的情况),也不同于许多“列表的扁平列表”答案。
我要列出一个列表,其中一些又是列表列表,然后“拉平”到列表列表(而不仅仅是列表!)。
作为一个具体的例子,我想从这里开始:
my_list_of_lists = [[1, 2, 3], [[9, 10], [8, 9, 10], [3, 4, 6]], [11, 12, 13]]
Run Code Online (Sandbox Code Playgroud)
对此
target_list_of_lists = [[1, 2, 3], [9, 10], [8, 9, 10], [3, 4, 6], [11, 12, 13]]
Run Code Online (Sandbox Code Playgroud)
(从视觉上讲,我想将外部列表中的所有[[和]] 内部分别转换为[和]。)
我有DataFrame:
df = pd.read_csv(...)
a b c d e f
1 two adc aaaa Nan mmm
2 one Nan aaa Nan nnn
1 one ab Nan Nan ww
1 two abcd aaa ff uiww
1 two a aaa d iii
Run Code Online (Sandbox Code Playgroud)
我想根据“ a”和“ b”删除重复项。
df = df.drop_duplicates(['a', 'b'])
Run Code Online (Sandbox Code Playgroud)
我想得到这个结果:
a b c d e f
1 two abcd aaaa ff uiww
2 one Nan aaa Nan nnn
1 one ab Nan Nan ww
Run Code Online (Sandbox Code Playgroud)
我尝试使用transform …
我正在编写代码,以在输入特定的数字字符串时提醒用户。该代码运行似乎按预期运行,但应给我“ 12345”时输出“ 1122334455”:
import sys
sys.path.append('..')
import keyboard
line = ''
ISBN10 = ''
number = ""
def print_pressed_keys(e):
global line, ISBN10, number
line = line.join(str(code) for code in keyboard._pressed_events)
if line == "2":
number = 1
elif line == "3":
number = 2
elif line == "4":
number = 3
elif line == "5":
number = 4
elif line == "6":
number = 5
elif line == "7":
number = 6
elif line == "8":
number = 7
elif …Run Code Online (Sandbox Code Playgroud) 我发现https://chaquo.com/chaquopy/doc/current/python.html#java.cast 中缺少如何使用这些非常有用的功能的示例。
我希望有更多的例子来展示如何执行我一直在努力执行的一些任务。例如解释是否可以将二维 Java 数组转换为 Python 列表、数组或张量。甚至只是了解使用 java.cast() 的语法是什么。
我在文件中有一些数据,并且我正在使用这些数据Regex来获取单个元素并删除和标记\r\n之间的所有内容。<opening></closing>
但是,当我尝试elements单独选择时,最后,整个数据将被选为一组。
这是我的正则表达式:
(<([ph0-9figc]+)>)([a-zA-Z0-9äöüÄÖÜß[:punct:] \n\r\t])+(<\/\2>)
Run Code Online (Sandbox Code Playgroud)
输入数据样本