List
上一篇文章中,介绍了Python中的数字和字符串,这一节中,来介绍一下Python的集合——List,例如:
nums = [1,2,3,4,5]
names = ['小明','小李','小王']
上面的的例子就是list的定义,数据被包含在[]
(方括号)之间,内部每一项使用,
(逗号)分隔。list内的数据,可以全部是数字或字符串,也可以是复合类型。例如:
compound = [1,'小明']
但是,通常我们定一个list的时候,里面的数据最好是同一个类型的。
list同strings一样,可以被索引和切片。例如:
>>>word = ['P','y','t','h','o','n']
>>>#索引方式
>>>word [0] #
'P'
>>>word [-1]
'n'
>>>#切片方式
>>>word [-2:]
['o', 'n']
>>>word [-3:-1]
['h', 'o']
切片的方式,我们可以理解为是区间式索引,可以取list中一段数据。看下面的例子,字符的左侧就是改字符的索引值,比如所P
左侧的0,就是该字符的索引值,最右侧的的值代表着这个list的长度,所以说这个list的长度为6。
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1
利用切片的方式,获取所有的数据内容,得到是一个全新的list。例如:
>>>word[:]
['P','y','t','h','o','n']
list也支持连接操作,例如:
>>>word+ ['G','o','o','d']
['P','y','t','h','o','n','G','o','o','d']
和strings不同的是,strings是不可变的,但是list是一个可变的。例如:
>>>fibo = [1,1,2,3,4,8,13] #斐波那契数列,这里面包含了一个错误
>>>fibo[4] = 5
>>>fibo
[1,1,2,3,5,8,13]
也可以向list内加入新的项,使用方法append()
(后面的文章会介绍),例如:
>>>fibo.append(21)
>>>fibo
[1, 1, 2, 3, 5, 8, 13, 21]
>>>fibo.append(13 + 21)
>>>fibo
[1, 1, 2, 3, 5, 8, 13, 21, 34]
当然,我们也可以使用切片的方式来改变list,例如:
>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # 将小写的c、d 、e 替换成大写的
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # 移除C、D、E
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']
>>> # 清空leterrs
>>> letters[:] = []
>>> letters
[]
len()
也适用于list,例如:
>>>fibo = [1,1,2,3,5,8,13] #斐波那契数列
>>>len(fibo)
7
list内部也可以包含其他的list,例如:
>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'
while
while是Python中的循环语句的一个,只要条件允许的情况下,会一直循环下去。看下面的例子:
while 1 :
print('while')
上面的例子,会一直输出while
, 例子中 1
是条件,当条件是true的时候,那么会执行循环内部的代码,如果是false,则不执行循环内部。在Python中,只有当整数值是0的时候是false,其他整数值都是true。
在例子中,可以看到,while内部代码有缩进。缩进是Python分组分块的表示方法。也可以说一种从属关系吧。如print('while')
是while语句内部的代码,所以需要缩进来表示。值得注意的是,同一种从属关系的代码,需要相同缩进。例如:
# 利用while实现斐波那契数列
a , b = 0 , 1
while b <10
print(b)
a , b = b , a+b
#结果输出
1
1
2
3
5
8
上面的例子中,包含了几个新特性:
- 变量赋值
a , b = 0 , 1
,这句里面,变量a
和b
分别获得一个值0
和1
。 - while语句,条件是
b<10
,这个不难理解,就是b小于10。这里使用了标准的比较表达式。<
符号是一个标准的比较运算符。
运算符 | 解释 |
---|---|
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
== | 等于 |
!= | 不等于 |
-
print()
输出语句,不同于在交互式环境下直接输出,print
输出字符串的时候不带引号,例如:
>>> a='bcd'
>>> a
'bcd'
>>> print('a的值为:' , a)
a的值为: bcd
print()
的关键字参数可以避免结束后输出换行符,或者输出不同的字符串,例如:
>>> a, b = 0, 1
>>> while b < 1000:
... print(b, end=',')
... a, b = b, a+b
...
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,