>>> from sys import getsizeof
>>> a=[i for i in range(1000)]
>>> b={i for i in range(1000)}
>>> getsizeof(a)
9024
>>> getsizeof(b)
32992
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么一个集合比一个列表消耗更多的内存?列表是有序的,集合不是。是一个消耗内存的集合的内部结构吗?还是列表包含指针而集合不包含?或者也许sys.getsizeof这里是错的?我看过有关元组、列表和字典的问题,但我找不到列表和集合之间的任何比较。
当我按住一个键时,将键入第一个符号,然后稍有延迟,然后快速键入其他符号。像这样:
在终端中也是如此。即使那里的延迟较小,在Linux控制台(tty)中也会发生同样的情况。
我正在使用的Python中的控制台应用程序进行工作curses,它可以处理箭头键的按动操作,并且也存在这种延迟。
我想摆脱这种延迟,这样当我按住一个键时,它将均匀地发送信号,并且在第一个(或任意一个)符号之后没有任何特定的延迟。
我该怎么做?我应该使用阿森纳的东西curses吗?还是修改某些系统范围的设置?
EDIT1:我认为我找到了一种方法。我可以转到键盘设置并设置自动重复的延迟。但是它会全局更改它,并且仅在我的图形界面上更改。它在Linux控制台中没有任何改变。因此,我也在寻找一种在控制台中执行此操作的方法,因此它只会影响我的应用程序,而不会影响整个系统。
EDIT2:在X http://linuxforcynics.com/how-to/set-keyboard-repeat-delay-and-rate中找到了一种在全球范围内进行命令行处理的方法
以及用于Linux控制台的方法:https : //unix.stackexchange.com/questions/58651/adjusting-keyboard-sensitivity-in-a-command-line-terminal
但仍在寻找仅限应用的方式。
我有一个字符串,或几个字符串.例如:
a = '12345678'
b = '123456789'
Run Code Online (Sandbox Code Playgroud)
我正在使用Python 3.2.我试图让后面写的字符串的后半部分.如果字符串具有奇数个字符,则丢弃中间字符.所以,我想要实现的目标是:
a_out = '8765'
b_out = '9876'
Run Code Online (Sandbox Code Playgroud)
我这样做的方式如下:
a_back = a[::-1]
a_out = a_back[0:len(a_back)//2]
Run Code Online (Sandbox Code Playgroud)
问题是:有没有更短的方法来做到这一点?可以在一次操作而不是两次操作中完成吗?