《Python基础教程》学习的第二课0120

今日学习列表与元组

1.序列

>>> a=[‘RP‘,22]
>>> b=[‘RY‘,55]
>>> database=[a,b]
>>> database
[[‘RP‘, 22], [‘RY‘, 55]]
>>>

2.索引

>>> hello=‘nihao‘
>>> hello[0]
‘n‘
>>> #也可以这样写
>>> ‘nihao‘[0]
‘n‘
>>>

3.分片

>>> numbers=[1,2,3,4,5,6,7,8,9,10]     //编号的使用,正着数是从0开始计数,倒着数也是从0开始计数。所以一般最后一个元素不好取到。
>>> numbers[3:6]
[4, 5, 6]
>>> #分片
>>> numbers[0:1]
[1]
>>> numbers[7:10]
[8, 9, 10]
>>> numbers[-1:-3]
[]
>>> numbers[-3:-1]
[8, 9]
>>> numbers[-3:]     //输出直到最后一个元素
[8, 9, 10]
>>> numbers[:3]     //从首位元素输出到指定元素
[1, 2, 3]
>>> numbers[:]       //输出全部元素
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

一个简单的示例:

>>> url=raw_input(‘please enter the url:‘)
please enter the url:http://www.python.org
>>> domain=url[11:-4]
>>> print "domain name: "+domain
domain name: python
>>>

3.1分片--以更大的步长

上面的例子中增加步长是1,接下来可以使用不同的步长。

>>> numbers[0:10:1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]                                                           //  a:b:c其中a是指定的起始位,b是指定的末位,c是指定的步长。
>>> numbers[0:10:3]
[1, 4, 7, 10]
>>> numbers[3:6:3]
[4]
>>>

一个小tip

>>> numbers[::4]                                                    //需要将每4个中的第一个提取出来,只需要将步长设置为4.
[1, 5, 9]

步长可以为负数,不可以为0;(负数即为倒着输出)
>>> numbers[8:3:-2]
[9, 7, 5]
>>>

简单总结:如果要得到需要的输出必须知道如何设置abc参数。

4.序列相加

>>> #序列相加
>>> [1,2,3,4]+[5,6,7]
[1, 2, 3, 4, 5, 6, 7]
>>> [1,2,3]+‘world‘                                   //列表和字符串无法连接在一起

Traceback (most recent call last):
  File "<pyshell#35>", line 1, in <module>
    [1,2,3]+‘world‘
TypeError: can only concatenate list (not "str") to list
>>>

5.乘法

>>> ‘nihao ‘*5                                                        //字符串乘法
‘nihao nihao nihao nihao nihao ‘
>>> [1,5]*3                                                             //列表乘法
[1, 5, 1, 5, 1, 5]
>>> x=‘hello‘                                                             //字符串乘法
>>> x*5
‘hellohellohellohellohello‘                                      
>>> wo=[you ]*6

Traceback (most recent call last):
  File "<pyshell#42>", line 1, in <module>
    wo=[you ]*6
NameError: name ‘you‘ is not defined
>>> wo =[None]*2                                                  //这里可以看出只有pyhton定义的关键字可以不加‘ ’,而非关键字则需要加‘ ’以字符的形式带入运算。
>>> wo
[None, None]
>>>

7.成员资格--in
>>> u=[‘foo‘,‘wo‘,‘koo‘]                                //列表里不允许查找非字符串
>>> ‘o‘in u
False
>>> ‘foo‘in u
True
>>> sub=‘ni$$wo%%ta‘
>>> ‘$‘in sub
True
>>> ‘P‘in ‘Python‘
True
>>>

8.长度最小值和最大值

>>> members=[100,34,68]
>>> len(members)
3
>>> min(members)
34
>>> max(members)
100
>>> len([45,26])
2
>>> min([45,26])
26
>>> len(‘jack‘)
4
>>> min(‘abcxyz‘)
‘a‘
>>> max(2+3,5+6)
11
>>>

9.列表

9.1   list

>>> #list 函数
>>> list(‘hello‘)                                          //运用list将字符串转化成列表
[‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘]
>>> x=[1,21,1]
>>> x[1]=2
>>> x
[1, 2, 1]
>>> name=[‘alice‘,‘bob‘,‘tom‘]
>>> del name[2]                                           //删除列表中的元素
>>> name
[‘alice‘, ‘bob‘]
>>>

9.2   分片赋值

>>> name=list(‘perl‘)
>>> name
[‘p‘, ‘e‘, ‘r‘, ‘l‘]
>>> name[2:]
[‘r‘, ‘l‘]
>>> ‘arr‘=name[2:]                                                                   //字符串若没有list成列表则不能直接赋值
SyntaxError: can‘t assign to literal
>>> name[2:]=list(‘arr‘)                                                             //list后可以赋值
>>> name
[‘p‘, ‘e‘, ‘a‘, ‘r‘, ‘r‘]

注意:列表与列表的赋值

>>> number=[1,5]
>>> number[2:]=[2,3,4]
>>> number
[1, 5, 2, 3, 4]
>>> number=[1,2,3,4,5,6,7,8,9,10]
>>> number[2:9:2]=[11,12,13,14]                //以指定步长赋值
>>> number
[1, 2, 11, 4, 12, 6, 13, 8, 14, 10]
>>> number[2:9:2]=[11,12,13,14,15]

//若多加一个15则超出原始列表的范围,会造成错误。
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    number[2:9:2]=[11,12,13,14,15]
ValueError: attempt to assign sequence of size 5 to extended slice of size 4
>>>

9.3   列表方法

append

>>> #列表方法--append    调用方法: 对象.方法(参数)
>>> lst=[1,2,3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]
>>> #append用于在列表末尾添加新的对象
>>>

count

>>> #count用于统计某个元素在列表中的出现次数
>>> [‘to‘,‘be‘,‘or‘,‘not‘,‘to‘,‘be‘,‘is‘,‘a‘,‘question‘].count(‘to‘)
2
>>> x=[1,2,[3,4],5,[3,4],[3,[7,8]]]
>>> x.count(3)
0
>>> x.count([3,4])
2
>>> x.count([7,8])
0
>>>

extend

>>> #extend用于在列表的末尾一次性追加另一个序列中的多个值(可以用新的列表拓展原有的列表)
>>> a=[1,2,3]
>>> b=[10,11,12]
>>> a.extend(b)
>>> a
[1, 2, 3, 10, 11, 12]
>>> #此操作看起来像连接,二者区别是:extend方法修改了被扩展的序列,而原始的连接会返回一个全新的列表
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a+b
[1, 2, 3, 4, 5, 6]
>>> a
[1, 2, 3]
>>>

insert

>>> #insert用于将对象插入到列表中
>>> numbers=[1,2,3,4,5,6,7,8]
>>> numbers.insert(3,‘four‘)
>>> numbers
[1, 2, 3, ‘four‘, 4, 5, 6, 7, 8]
>>> numbers[1:7:2]=[‘R‘]               //这里出现了问题,我指定的起始是1,终点是7,每隔两个步长将‘R’插入,但是这样做会使得终点随着新的元素的插入而产生变化,所

Traceback (most recent call last):     //以无法完成此要求。
  File "<pyshell#46>", line 1, in <module>
    numbers[1:7:2]=[‘R‘]
ValueError: attempt to assign sequence of size 1 to extended slice of size 3
>>>

index

>>> #index用于从列表中找出某个值第一个匹配项的索引位置
>>> a=[‘wo‘,‘he‘,‘ni‘,‘hai‘,‘you‘,‘ta‘]
>>> a.index(‘wo‘)
0
>>> a.index(‘ji‘)                                      //调用index函数没有找到,返回错误

Traceback (most recent call last):
  File "<pyshell#52>", line 1, in <module>
    a.index(‘ji‘)
ValueError: ‘ji‘ is not in list
>>>

pop

>>> #pop移除列表中的一个元素(默认是最后一个)
>>> x=[1,2,3]
>>> x.pop()
3
>>> x
[1, 2]
>>> x.pop(0)
1
>>> x
[2]
>>> x=[1,2,3,4,5,6,7,8,9]
>>> x.pop([1:8:2])
SyntaxError: invalid syntax

remove

>>> #remove 用于移除列表中某个值的第一个匹配项
>>> a=[‘to‘,‘be‘,‘or‘,‘not‘,‘to‘,‘be‘,‘is‘,‘a‘,‘question‘]
>>> a.remove(‘be‘)
>>> a
[‘to‘, ‘or‘, ‘not‘, ‘to‘, ‘be‘, ‘is‘, ‘a‘, ‘question‘]

sort

>>> #sort用于在原位置对列表进行排序,在原位置排序意味着改变原来的列表,从而让其中的元素能按照一定的顺序排列,而不是简单的返回一个以排序的列表副本
>>> x=[1,2,3]
>>> x.sort()
>>> x
[1, 2, 3]
>>> x=[5,9,4]
>>> x.sort()
>>> x
[4, 5, 9]
>>> sort(5,9,8)

sorted             //是函数,直接调用,不用.调用

>>> x=[7,8,2,9,4,0,9,8,6]
>>> y=x[:]
>>> y
[7, 8, 2, 9, 4, 0, 9, 8, 6]
>>> y.sort()
>>> y
[0, 2, 4, 6, 7, 8, 8, 9, 9]
>>> y=sorted(x)
>>> y
[0, 2, 4, 6, 7, 8, 8, 9, 9]
>>> sorted(‘python‘)
[‘h‘, ‘n‘, ‘o‘, ‘p‘, ‘t‘, ‘y‘]
>>> sorted(‘x‘,‘bd‘,‘c‘)

Traceback (most recent call last):
  File "<pyshell#98>", line 1, in <module>
    sorted(‘x‘,‘bd‘,‘c‘)
TypeError: ‘str‘ object is not callable
>>> sorted(‘d‘,‘a‘,‘c‘)

Traceback (most recent call last):
  File "<pyshell#99>", line 1, in <module>
    sorted(‘d‘,‘a‘,‘c‘)
TypeError: ‘str‘ object is not callable
>>>

reverse                                 //与sort刚好相反

>>> #reverse将列表中的元素反向存放
>>> x=[3,2,1]
>>> x.reverse()
>>> x
[1, 2, 3]
>>>

10.高级排序

cmp,可类比C语言字符串函数中的strcmp函数

>>> cmp(42,39)
1
>>> cmp(‘a‘,‘z‘)
-1
>>> cmp(‘ios‘,‘ump‘)
-1
>>> numbers=[8,2,9,7]
>>> numbers.sort(cmp)
>>> numbers
[2, 7, 8, 9]
>>>

11.元组:不可变序列

>>> 1,2,3
(1, 2, 3)
>>> (1,2,3)
(1, 2, 3)
>>> (42.)
42.0
>>> (42,)
(42,)
>>> 6+(40.)
46.0
>>> (42/8)*3
15
>>> 3*(42)
126
>>> 3*(40+2.)
126.0
>>> 3*(40+2,)
(42, 42, 42)
>>>

tuple

此函数功能是将一个序列转变为元组

>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple(‘abc‘)
(‘a‘, ‘b‘, ‘c‘)
>>> tuple((‘uji‘))
(‘u‘, ‘j‘, ‘i‘)
>>>

原文地址:https://www.cnblogs.com/RPlandscape/p/8322010.html

时间: 2024-11-02 10:04:07

《Python基础教程》学习的第二课0120的相关文章

Python基础教程学习:深入 Python iter() 方法

今天我们来介绍下Python基础教程学习之iter() 方法另外的用法.据说很少有人知道这个用法! 一.上代码.学用法 我们都比较熟悉 iter(obj),会返现一个迭代器,如果 obj 不是可迭代对象,则会报错.但其实如果仔细看官方文档,会发现 iter() 方法其实是接受两个参数的,文档说明如下 iter(object[, sentinel]) sentinel 英文翻译为 哨兵. sentinel 参数是可选的,当它存在时,object 不再传入一个可迭代对象,而是一个可调用对象,通俗点说

.Net程序员之Python基础教程学习----列表和元组 [First Day]

一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所以的范围是-N~N-1之间,超过这个范围就会提示 IndexError:  index out of range >>> greeting ='Hello world' >>> print greeting Hello world >>> print gr

&lt;&lt;Python基础教程&gt;&gt;学习笔记之|第01章|基础知识

本学习笔记主要用要记录下学习<<Python基础教程>>过程中的一些Key Point,或自己没怎么搞明白的内容,可能有点杂乱,但比较实用,查找起来也方便. 第01章:基础知识 ------ Jython:      Python的Java实现,运行在JVM中,相对稳定,但落后于Python,当前版本2.5,在TA(Python+Robot)会用到 IronPython:  Python的C#实现,运行在Common Language Runtime,速度比Python要快 >

.Net程序员之Python基础教程学习----判断条件与循环[Fourth Day]

    今天学习Python的判断条件与循环操作. 一. 布尔变量: 在学习判断条件之前必须的了解bool变量,在Python中bool变量与C语言比较类似,与.net差别比较大,其中下面集中情况需要记住. False, '', 0, (), [],{},None 为空,而True,12,'hello',[1] 这些普遍都为真. 其实可以简单理解为,无即是false,有既是true >>> bool(True) True >>> bool(0) False >&g

【学习笔记】Python基础教程学习笔记

教程视频网盘共享:http://pan.baidu.com/s/1hrTrR5E 03-python基础.if判断 print 输出数据 print("hahahah")------>hahahah a = 100 print(a)----->直接打印a的值 a = 18 print("我的年龄是%d岁"%a)------>我的年龄是18岁 age = 18 high = 178 print("我的年龄是%d岁,我的身高是%dcm&quo

.Net程序员之Python基础教程学习----字典的使用 [Third Day]

  今天学习了字典的使用, 所谓的字典其实就是键值对数据, 一个字典里面有唯一的Key对应一个value,Key是唯一的,Value不唯一. 在.net添加相同的Key会报错,在Python,若出现相同的Key,后面Key的value将会覆盖前面的数据. 一.字典的基本用法. 1.字典的创建: 字段的创建格式是{key:Value,Key:Value},也可以通过,dict函数转换. Note:key的顺序按照字符串从小到大排序:如果声明字典的时候有相同的Key,取最后一个.(有别于.net)

.Net程序员之Python基础教程学习----字符串的使用 [Second Day]

     在The FirstDay 里面学习了列表的元组的使用,今天开始学习字符串的使用.字符串的使用主要要掌握,字符串的格式化(C语言中我们应该都知道,Python和C语言差别不大),字符串的基本操作(Join,Split,Replace等和.net里面的也有很多相似点) 一.字符串的基本操作     1.字符串格式化认识: 字符串的格式化用%隔开与C语言一样.赋值也是用%(val1,val2)来传递,其实就是用元组来传递格式化数据. Note: values元素的个数以及格式必须与格式化字

&lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第14章 | 网络编程

Python是个很强大的网络编程工具,原因有二: 1. Python内有很多针对常见网络协议的库 2. Python在处理字节流方面的优势 本章主要内容: 探讨Python标准库中的一些网络模块,探讨SocketServer类,最后是Twisted框架. ------ 相关模块 Socket模块 基本组件,用于两个程序之间的信息通道.套接字包括两个: 服务器套接字和客户端套接字.创建一个服务器套接字后,让它等待连接,这样它就在某个网络地址处监听.客户端套接字负责:简单的连接,完成事务,断开连接.

python基础教程学习笔记---(1)基础语法

1.两个整数相除,计算结果的小数部分被截除,结果仍然是一个整数: 如:1/2=0 2.整数和浮点数相除.或者浮点数之间相除,结果有小数部分,仍然是一个浮点数: 如:1/2.0=0.5  1.0/2=0.5  1.0/2.0=0.5  1/2.=0.5 3.双斜线(//)定义整除运算 如:1.0//2.0=0.0  1//2=0 4.%定义取余运算(求模运算) 如:10%3=1  2.75%0.5=0.25 5.**定义幂运算(乘方运算) 如:2**3=8  -3**2=-9 6.输入16进制表达