PYTHON学习之初识PYTHON

列表——类似于数组

例:country = ["China", "USA", "England"], 如同数组一样,数组下标是从0开始的,而PYTHON中的列表也是如此:

>>> print(country)
['China', 'USA', 'England']

>>> print(country[0])
China
>>> print(country[1])
USA
>>> print(country[2])
England
>>> 

len()可以得出列表中有多少个数据项,例:

>>> print(len(country))
3
>>>

使用append()方法可以在列表末尾增加一个数据项,pop()方法可以在列表末尾删除一个数据项,而extend()方法则可以在列表末尾增加一个数据项集合

>>> country.append("Japan")
>>> print(country)
['China', 'USA', 'England', 'Japan']
>>> country.pop()
'Japan'
>>> print(country)
['China', 'USA', 'England']
>>> country.extend(["France", "Australia"])
>>> print(country)
['China', 'USA', 'England', 'France', 'Australia']
>>>


在列表中找到一个指定的数据项,并删除,可使用remove()方法,而如果想在特定的位置增加一个数据项,可以使用insert()方法,例:

>>> country.remove("USA")
>>> print(country)
['China', 'England', 'France', 'Australia']
>>> country.insert(0, "Russia")
>>> print(country)
['Russia', 'China', 'England', 'France', 'Australia']
>>>

PYTHON列表中可以混合存放字符串和数字,实际上,不光是可以混合字符串和数字,只要你愿意,完全可以在列表中存储任意的数据

例:有如下列表:

movies = ["The Holy Grail", "The Life of Brian", "The Meaning of Life"]

若想把列表的数据变成以下模样,该怎么办呢?

["The Holy Grail", 1975, "The Life of Brian", 1979 "The Meaning of Life", 1983]

很明显,我们有两种方法,一是用之前说过的insert()方法, 一是重新创建一张列表

>>> movies.insert(1, 1975)
>>> movies.insert(3, 1979)
>>> movies.insert(5, 1983)
>>> print(movies)
['The Holy Grail', 1975, 'The Life of Brian', 1979, 'The Meaning of Life', 1983]
>>>

那么,如果我们想像C语言一样,用一个循环来输出列表的数据项(C语言中的数组的元素),那么该怎么办呢?

当然也是使用for循环,来看一下for循环的语法:

for 目标标识符 in 列表 :(千万别忘了这两点)

    列表处理代码(必须缩进)

类比于C语言,迭代处理列表的时候,相应的会把列表中的各个数据值分别赋至目标标识符,也就是说,每次执行循环代码的时候,目标标识符都会指示一个不同的数据值。循环一直迭代,直至处理完列表中的所有数据(当然,while()语句也可以实现跟for()一样的功能)

例:>>> for each_item in movies:
...     print(each_item)
...
The Holy Grail
1975
The Life of Brian
1979
The Meaning of Life
1983
>>>
使用while

>>> count = 0
>>> while (count < len(movies)) :
...     print(movies[count])
...     count = count + 1
...
The Holy Grail
1975
The Life of Brian
1979
The Meaning of Life
1983
>>>

注意:在Python中,单引号和双引号都可以用来创建字符串。

跟大多数编程语言一样,Python在创建名字时,必须以一个字母或者一个下划线开头,接下来就可以包括任何的字母字符,数字和/或者下划线,但是不允许出现奇怪的字符,如%$这些。另外,Python也是区分大小写的,也就是说name和NAME是两个不同的名字。


C语言中有数组的数组(多维数组),而Python中则有列表中的列表,譬如:

>>> movies = [
...     "The Holy Grail", 1975, "Terry Jones & Terry Gilliam", 91,
...             ["Graham Chapman",      
...                     ["Michael Palin", "John Cleese", "Terry Gilliam", "Eric Idle", "Terry Jones"]]]
>>> print(movies)
['The Holy Grail', 1975, 'Terry Jones & Terry Gilliam', 91, ['Graham Chapman', ['Michael Palin', 'John Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]]
>>>

>>> print(movies[4][1][3])
Eric Idle
如果使用for循环的话,嵌套在列表中的下一层列表会被原样打印出,如:

>>> for each_item in movies:
...     print(each_item)
...
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
['Graham Chapman', ['Michael Palin', 'John Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]

那应该怎么解决呢?

这时我们就可以使用我们常用的if...else...语句了

格式:

if  条件 :

    "true"组

else:

    "false"组

既然有了if...else...,那么我们怎样才能判断列表选项本身是不是一个列表呢?这个我们就得使用 insinstance()了,isinstance()支持两个参数

例:

>>> names = ["MO", "XUE"]
>>> isinstance(names, list)
True
>>> num_names = len(names)
>>> isinstance(num_names, list)
False
>>>
很显然,isinstance()返回True或False以供if...else..使用。

现在,我们来把刚才那个有着嵌套列表的列表显示出其数据项。

>>> for each_item in movies:
...     if isinstance(each_item, list):
...             for each_son in each_item:
...                     print(each_son)
...     else:
...             print(each_item)
...
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
['Michael Palin', 'John Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']
从上面我们可以看出,它已经帮我输出了一层嵌套,但是还是没有输出完全的出来。

很显然,我们可以不断地通过增加if..else..来达到输出很多层的列表,这点是毋庸置疑的。但是这样的话很明显非常麻烦,那有没有什么好点的方法呢?


想想,在C语言中,我们一般把实现某个功能的一大段代码写成一个函数来调用,这样的话,就可以使得编程结构更清晰,明了,那么,在Python中是否也可以这么做呢

来看一下Python中的函数的标准形式:

def 函数名 (参数(可选)):(括号必不可少)

    函数代码组(必须缩进)

好吧,下面我们来使用函数来把刚才的那个嵌套列表写出来:

>>> def print_list(the_list):
...     for each_item in the_list :
...             if isinstance(each_item, list):
...                     print_list(each_item)
...             else:
...                     print(each_item)
...
>>> print_list(movies)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones
>>>

简单多了把,这里将的东西都很简单,学习过C语言的人一下子就可以看懂了,我也是今天才开始学习的,,哈哈,,时间不早了,睡觉去~~~






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值