2013-03-04 94 views
4

从学习Python坚硬方式:Python列表和运营商

Python看到你所提到的MyStuff并查找该变量。它可能不得不向后看,看看你是用=创建的,看看它是否是函数参数,或者它可能是全局变量。无论哪种方式,它必须首先找到mystuff。

一旦找到mystuff它就会击中。 (周期)运算符,并开始 查看属于mystuff一部分的变量。由于mystuff是一个 列表,它知道mystuff有一堆功能。

然后命中追加并将名称“附加”与mystuff所拥有的所有 进行比较。如果append在那里(它是),那么它抓取 即可使用。接下来的Python看到((括号)并且意识到,“哦, 嘿,这应该是一个函数。”在这一点上它调用(aka runs, 执行)函数就像通常一样,但是它调用 函数额外的参数。

这额外的参数是...的MyStuff!我知道,奇怪吧?但是,这 Python中是如何工作的,所以最好只记住它,并假设这是 正常的。接下来会发生什么,在所有的结束这是一个函数 ,看起来像:append(mystuff,'hello')而不是你读的 这是mystuff.append('hello')。

他从哪里得到“mystuff”?而我仍然不确定这期间运营商的事情是如何工作的(对不起,我是新在此请多多包涵),后来我们得到这个:

ten_things = "Apples Oranges Crows Telephone Light Sugar" 

print "Wait there's not 10 things in that list, let's fix that." 

stuff = ten_things.split(' ') 

我不知道该字符串是如何成为一个列出最后一行后,.split会自动将它变成一个还是什么?那个时期他正在做的“分裂”或“追加”事物的名称是什么?在编程中让我失望的主要原因之一是我不知道实际上调用了多少东西。我知道函数,变量等,但是像这样的东西.split只是让我困惑。

帮助?

+2

我鼓励你在python shell中尝试这些东西。如果你在windows上,IDLE提供了一个,如果你在Mac或者Linux上,启动一个终端并输入'python'。这样你可以试验一下东西 – entropy 2013-03-04 01:26:36

+2

例如,如果你想知道变量的类型是什么,你可以输入'type(variable)',它会告诉你。或者如果你想知道你可以在'.'后面输入什么名字以及他们做了什么,你可以输入'help(variable)',它会告诉你一个所有可用方法的列表(那些是绑定到该变量的函数,可以在'.'后面输入,并描述它们的作用 – entropy 2013-03-04 01:28:33

回答

2

关于“?从 “” 他在哪里得到”的MyStuff,mystuff是某种类型的对象,并且有方法函数之间的对象的属性值(或属性值同级)。点(句点)是一个限定符操作符;例如,mystuff.append将相关append函数限定或标识为与对象mystuff关联的函数。对象方法通常具有隐式参数(通常称为self)作为第一个参数,并且该参数与该方法所属的对象相同。在这种情况下,这是mystuff

正如前面的回答中所提到的,split拆分了一个字符串并返回一个列表。有关详细信息,还请参阅tutorialspoint关于split

的方法,分裂()返回的字符串中的所有字的列表,使用str作为分离器(分裂上的所有空格如果未指定),任选地限制分割数量为num。 ...以下是split()方法的语法:str.split(str="", num=string.count(str))

+0

此外,为什么('')甚至在东西= ten_things.split('')? – user2092951 2013-03-05 01:27:46

+0

含义我试过了,没有使用单引号和空格,我只是将参数留空,并以同样的方式创建了一个列表。 – user2092951 2013-03-05 01:28:20

+0

'ten_things.split('')'(在两个单引号之间留有空格)在每个空格字符处拆分“ten_things”。 'ten_things.split()'在任何空白处分割它 - 所以它会在选项卡,返回值,换行符以及空格字符处分割。 – 2013-03-05 01:32:31

4

stuff = ten_things.split(' ')不改变ten_things的值。相反,它会创建一个名为stuff的新变量并将其保存为由ten_things.split(' ')创建的列表。这里作为参数传递给split方法的空间非常重要。它所说的是,Python应该将字符串ten_things分割为,使用split的参数作为分隔符。

例子:

"This is a string".split(' ') == ["This", "is", "a", "string"]

"This|is|a|string".split('|') == ["This", "is", "a", "string"]

+0

感谢您的快速回复! – user2092951 2013-03-04 01:21:09