小编Tha*_*vas的帖子

id()函数用于什么?

我阅读了Python 2文档并注意到了这个id()函数:

返回对象的"标识".这是一个整数(或长整数),保证在该生命周期内该对象是唯一且恒定的.具有非重叠生存期的两个对象可以具有相同的id()值.

CPython实现细节:这是内存中对象的地址.

所以,我通过使用id()列表进行了实验:

>>> list = [1,2,3]
>>> id(list[0])
31186196
>>> id(list[1])
31907092 // increased by 896
>>> id(list[2])
31907080 // decreased by 12
Run Code Online (Sandbox Code Playgroud)

函数返回的整数是多少?它是C中内存地址的同义词吗?如果是这样,为什么整数不对应于数据类型的大小?

何时id()在实践中使用?

python

93
推荐指数
6
解决办法
9万
查看次数

Python - 为什么cmp()有用?

根据文档和本教程,

cmp() returns -1 if x < y

和

cmp() returns 0 if x == y

和

cmp() returns 1 if x > y

该教程还说

cmp()返回两个数字差异的符号

我真的没有得到两个数字差异的意思.这是否意味着当数字符号不相等(正号和负号)时它返回一个值?以来...

cmp(80, 100) :  -1      # both have positive sign.
cmp(180, 100) :  1      # both also have positive sign.
cmp(-80, 100) :  -1
cmp(80, -100) :  1
Run Code Online (Sandbox Code Playgroud)

**注意:教程中的代码.*

尽管我在符号差异方面存在困惑,但我无法想到为什么当x <y时我们需要内置函数来返回值-1.

功能不是cmp( )很容易实现的吗?是否有任何理由为什么Python创建者保持cmp( )功能,或者这个Python的cmp( )功能有任何隐藏的用法?

python

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

用于将字符串与预定义字符混合/混淆的简单算法

我有一个字符串如下:

  • 它的长度是10.
  • 它代表基数36,因此包括数字和大写字母.
  • 字符串的起源是由数据库生成的序列(即从1开始向上),其被转换为基数36.

我的问题是转换到base 36转换的结果也是连续的/顺序的; 例如:

    ID: 1402 -> 000000012Y    
    ID: 1403 -> 000000012Z    
    ID: 1404 -> 0000000130   
    ID: 1404 -> 0000000131  
    ID: 1404 -> 0000000132
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个简单的简单算法,可以将基数36的结果混合在一起:

  • 我只能使用允许的36个字符(数字和大写字母).
  • 该算法仅用于混淆/混合基数36串; 我不需要加密等
  • 这里的主要问题是结果不会是连续的.
  • 我需要能够对混淆结果进行反混淆/分离.

我尝试了一些变化的字符逻辑,但我陷入了连续的结果问题.
我想我需要在这里添加一些数学方面.

我将尽可能简单地感谢任何想法,如果可能的话,我会感谢代码示例.

java

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

Python中这个运算符"_"的名称是什么?

我正在阅读Python的隐藏功能,我遇到了这个答案.

从帖子开始:

使用交互式shell时,"_"包含最后打印项的值:

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> _
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
Run Code Online (Sandbox Code Playgroud)

这个运营商的名字是什么?我在文档上找不到它,我从未听说过它(以及其他语言).是否值得使用它?

PS.我想知道它的名字,因为我想看看该函数是如何实现的,并搜索其他语言是否具有这个非常棒的功能.

python

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

如何创建超过Python最大大小的列表

根据此,在32位系统上Python列表的最大大小为536870912个元件.

有没有可能的方法来初始化比这更大的列表?

让我们说:

list1 = [None]*1000000000
Run Code Online (Sandbox Code Playgroud)

python list

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

iOS EventKit:在iCloud以外的其他部分显示日历/在我的iPhone上

有没有办法在我的应用程序中创建一个新日历,该日历将显示在本机iOS日历应用程序的不同部分中?

http://i.imgur.com/HQBi1Gi.png

在上图中,Facebook有自己的日历区域,Hotmail,Gmail等也是如此。

目前,我可以使用来源EKSourceTypeLocal或EKSourceTypeCalDAV创建日历,这些日历将分别显示在“在我的iPhone上”或“ iCloud”下。我可以在这里创建一个新部分吗?您似乎无法创建新的源,因此我不知道如何处理此问题。

xcode ios ekevent

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

Python将字典内容写入ConfigParser

我正在尝试将字典的内容写入(并稍后读入)到ConfigParser,我相信我正在根据文档正确地进行,但似乎无法使其工作.有人可以帮忙吗?

import ConfigParser
parser = ConfigParser.ConfigParser()

parser['User_Info'] = {"User1-votes":"36","User1-gamestart":"13232323","User2-votes":"36","User2-gamestart":"234234234","User3-votes":"36","User3-gamestart":"13232323"}

Traceback (most recent call last):   File "<stdin>", line 1, in
<module> AttributeError: ConfigParser instance has no attribute '__setitem__'
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是有一个我可以更新的字典,并在最后写入配置文件,所以它看起来像:

[User_Info]
User1-gamestart = 13232323
User3-votes = 36
User2-votes = 36
User1-votes = 36
User2-gamestart = 234234234
User3-gamestart = 13232323
Run Code Online (Sandbox Code Playgroud)

python dictionary configparser

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

当我编译int main时真正发生了什么; 在C.

编译时真正发生了什么:

int main; 
Run Code Online (Sandbox Code Playgroud)

它不应该是main()并导致错误吗?

我试图在CodeBlocks中编译代码,它编译完美而没有错误.

c codeblocks

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

数字以0开头时出现意外的int/Integer行为

当我在数字前面加上额外的零时,我无法理解为什么这不会打印预期值(400300):

System.out.println(new Integer(0400300)); // prints 131264
System.out.println(0400300); // prints 131264
Run Code Online (Sandbox Code Playgroud)

如果我在数字前放置一个或多个零,则不会打印预期值.

// JUnit test does not pass:
assertTrue(0400300 == 400300);  // returns false!?
Run Code Online (Sandbox Code Playgroud)

java integer literals

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

如何生成给定范围内的回文数列表?

比方说,范围为:1 ≤ X≤ 120

这是我尝试过的:

>>> def isPalindrome(s):
    ''' check if a number is a Palindrome '''
    s = str(s)
    return s == s[::-1]

>>> def generate_palindrome(minx,maxx):
    ''' return a list of Palindrome number in a given range '''
    tmpList = []
    for i in range(minx,maxx+1):
        if isPalindrome(i):
            tmpList.append(i)

    return tmpList

>>> generate_palindrome(1,120)

[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111]
Run Code Online (Sandbox Code Playgroud)

但是,这是O(n).

如何改进此算法以使其更快?

PS.这是Python …

python python-2.7

0
推荐指数
2
解决办法
6148
查看次数

标签 统计

python ×6

java ×2

c ×1

codeblocks ×1

configparser ×1

dictionary ×1

ekevent ×1

integer ×1

ios ×1

list ×1

literals ×1

python-2.7 ×1

xcode ×1