Day 4 list 列表的使用方法
https://www.cnblogs.com/fanison/p/7123532.html
s="abcdefg"
print("s[3]:",s[3])
print("s[3:5]:",s[3:5])
print("s[:5]:",s[:5])
print("s[3:]:",s[3:])
print("s[::2]:",s[::2])
print("s[::-1]",s[::-1])
print("s[-2:-5]",s[-2:-5])
print("s[-5:-1]:",s[-5:-1])
s[3]: d
s[3:5]: de
s[:5]: abcde
s[3:]: defg
s[::2]: aceg
s[::-1] gfedcba
s[-2:-5] 左边比右边大的话什么都不输出
s[-5:-1]: cdef
1. 列表的增删改查
l1 = ["alex","taibai","wusir","oldboy",3,3,4,1,1,1,1]
#1. 切片索引
print(l1[0],type(l1[0]))
print(l1[0:3])
#增 append
l1.append("小黑")
print(l1)
l1.append([1,2,3])
print(l1)
#insert
l1.insert(3,"mengbin")
print(l1)
#extend 迭代插入,已最小单位从后面插入
l1.extend((4,"您好"))
print(l1) #删除,不加索引默认从后面删除
l1.pop()
print(l1) l1.pop(4)#加索引从索引处删除
print(l1) # l1.remove("alex")#按元素删除,无返回值.
print(l1) #del l1#删除列表 del l1[0:3] #按切片删除,索引删除
print(l1) #改
l1[0]="男神" #按索引改
print(l1) l1[0:2]="屌丝"#按切片改
print(l1)
l1 = ["alex","taibai","wusir","oldboy",3,3,4,1,1,1,1]
#查查询
a=l1[0]
print(a) #len长度
print(len(l1)) #count个数元素个数
print(l1.count(True)) # #index通过元素找索引
# print(l1.index("wusir")) l2=[1,2,3,7,3,2,0,9,8]
#sort 排序从小到大
l2.sort()
print(l2)
l2.sort(reverse=True)
print(l2) 2. 列表的嵌套
1. 输出结果为alex 的A 大写.
l1 = ["小新","alex","xiaoli","xiaowang",[1,"tian",3],4,4]
#方法1
a=l1[1].capitalize()
l1[1]=a
print(l1)
print(a)
#方法2
l1[1]=l1[1].capitalize()
print(l1)
#方法3
l1[1] ='Alex'
print(l1)
2. tian都大写
l1 = ["小新","alex","xiaoli","xiaowang",[1,"tian",3],4,4]
l1[4][1]=l1[4][1].upper()
print(l1)
3. 元祖
4. Range
for i in range (1,10):
print(i)
#打印处1 到10 十个数字。
for i in range (11):# 等于 for i in range (0,11)
print(i)
for i in range (1,10,2):
print(i)
#打印结果:1 3 5 7 9 for i in range (10,0,-1):
print(i)
#打印结果是10 9 8 7 6 5 4 3 2 1
3. 习题
#打印出列出一下所有的字符
l1 = [1,2,3,'alex',[2,3,'wusir'],7] l2 = l1[2]
for i in l1:
if type(i) == list:
for j in i :
print(j)
else:
print(i)
Python序列类型
Python序列类型
序列:字符、列表、元组
所有序列都支持迭代
序列表示索引为非负整数的有序对象集合
字符和元组属于不可变序列,列表可变
1)字符
字符串字面量:把文本放入单引号、双引号或三引号中;
' '' '''
>>> str1 = ' hello, fanison '
>>> type(str1)
str
如果要使用unicode编码,则在字符之前使用字符u进行标识
>>> str2 = u'你好,fanison'
>>> type(str2)
unicode
文档字串:模块、类或函数的第一条语句是一个字符的话,该 字符串就成为文档字符串,可以使用__doc__属性引用;
例:
>>> def printName():
"the function is print hello"
print 'hello'
>>> printName.__doc__
运算符:
索引运算符 s[i] 返回一个序列的元素i
切片运算符 s[i:j] 返回一个切片
扩展切片运算符 s[i:j:stride]
例:
>>> str3 = 'hello,fanison'
>>> str2[0:]
'hello,fanison' 返回所有元素
>>> str2[0:7]
'hello,f' 返回索引7之前的所有元素
>>> str2[0:7:2]
'hlof' 返回从索引0到6内步径为2的元素,即隔一个取一个
>>> str2[7:0:-2]
'a,le' 从索引7处倒着隔一个取一个取到索引1处
>>> str2[-4:-1]
'iso' 从索引-4处取到-2处
>>> str2[-4::-1]
'inaf,olleh' 从-4处到开始处倒着取
注意:
步径为正表示 正着取,索引从小到大 i < j
步径为负表示 倒着取,索引从大到小 i > j
支持运算:
索引、切片、min()、max()、len()等
len(s) s中的元素个数
min(s) s的最小值
max(s) s的最大值
支持方法:
S.index(sub [,start [,end]]) 找到指定字符串sub首次出现的位置
S.upper() 将一个字符串转换为大写形式
S.lower() 将一个字符串转化为小写形式
S.join(t) 使用s作为分隔符连接序列t中的字符串
>>> l1 = list(str1)
>>> l1
['h', 'e', 'l', 'l', 'o', ',', 'f', 'a', 'n', 'i', 's', 'o', 'n']
>>> ''.join(l1)
'hello,fanison' 使用空字符作为分隔符连接列表l1
S.replace(old, new[, count]) 替换一个字符串
>>> str1.replace('fan','FAN')
'hello,FANison'
注意:
使用 help()获取其帮助
>>> help(str.join)
2)列表
列表:容器类型
任意对象的有序集合,通过索引访问其中的元素,可变对象,长度可变,异构,任意嵌套
支持在原处修改
修改指定的索引元素,修改指定的分片,删除语句,内置方法
>>> list1 = [ 1,2,3,'x','n' ]
>>> list1[1]=56
>>> print list1
[1, 56, 3, 'x', 'n']
>>> list1[1:3]=[] 会删除索引1到索引3之前的元素
>>> print list1
[1, 'x', 'n']
>>> del(list1[1]) 使用del函数删除list索引为1的元素
>>> print list1
[1, 'n']
注意:
因为支持原处修改,不会改变内存位置,可使用 id() 查看其位置变化
内置方法:
L.count(value) 计算value值出现的次数
L.append(object) 将一个新元素追加到L末端
L.extend(iterable) 增加合并列表(第二个列表内容会以单个元素追加至末端)
>>> l1 = [ 1,2,3 ]
>>> l2 = [ 'x','y','z']
>>> l1.append(l2)
>>> l1
[1, 2, 3, ['x', 'y', 'z']] 使用append方法会以其原有存在形式追加
>>> l1 = [ 1,2,3 ]
>>> l1.extend(l2)
>>> l1
[1, 2, 3, 'x', 'y', 'z'] 注意两种增加的区别
L.pop([index]) 返回元素index并从列表中移除它,如果省略则返回并移除列表最后一个元素
L.remove(key) 移除值为key的元素
>>> l1 = [ 'x',2,'abc',16,75 ]
>>> l1.pop(2) pop方法是按索引移除
'abc'
>>> l1
['x', 2, 16, 75]
>>> l1.remove(16) remove方法是按值移除
>>> l1
['x', 2, 75]
L.index(value) 指定值首次出现的位置
L.insert(index, object) 在索引index处插入值
>>> l1.insert(1,'abc')
>>> l1
['x', 'abc', 2, 75]
L.sort() 排序
L.reverse() 逆序
>>> l1.sort()
[2, 75, 'abc', 'x']
>>> l1.reverse()
['x', 'abc', 75, 2]
l1 + l2: 合并两个列表,返回一个新的列表;不会修改原列表;
>>> l1 = [ 1,2,3]
>>> l2 = [ 'x','y','z']
>>> l1 + l2
[1, 2, 3, 'x', 'y', 'z']
l1 * N: 把l1重复N次,返回一个新列表;
>>> l1 * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3] 使用id()查看是否生成新列表
成员关系判断字符:
in 用法: item in container
not in item not in container
>>> l1 = [ 'x','y',3 ]
>>> 'y' in l1
True
>>> 'x' not in l1
False
列表解析:[]
列表复制方式:
浅复制:两者指向同一内存对象
>>> l1 = [ 1,2,3,4 ]
>>> l2 = l1
>>> id(l1) == id(l1)
True 可以看出两者内存地址相同
>>> l1.append('x')
>>> print l1
[ 1,2,3,4,'x' ]
>>> print l2
[ 1,2,3,4,'x' ]
深复制:两者指向不同内存对象
1)导入copy模块,使用deepcoop方法
>>> import copy
>>> l3 = copy.deepcopy(l1)
>>> id(l3) == id(l1)
False 地址不同
2)复制列表的所有元素,生成一个新列表
>>> l4 = l1[:]
>>> print l4
[ 1,2,3,4,'x' ]
>>> l1.append(6)
>>> print l1
[ 1,2,3,4,'x',6 ] l1改变
>>> print l4
[ 1,2,3,4,'x' ] l4不变
3)元组
表达式符号:()
容器类型
任意对象的有序集合,通过索引访问其中的元素,不可变对象,长度固定,异构,嵌套
常见操作:
()
>>> t1 = ( 1,2,3,'xyz','abc')
>>> type(t1)
tuple
>>> len(t1)
5
>>> t2 = () 定义一个空元组
>>> t3 = ( , )
SyntaxError: invalid syntax 报错:使用逗号分隔的条件是最少要有一个元素
(1,)
>>> t1[:]
( 1,2,3,'xyz','abc' )
>>> t1[1:]
(2, 3, 'xyz', 'abc')
(1,2)
>>> t1[1:4]
(2, 3, 'xyz')
>>> t4 = 'x',1,'yz',45,[2,4,6] 注意!!!这样也可以生成元组
>>> t4
('x', 1, 'yz', 45, [2, 4, 6])
t1 + t4: 合并两个元组,返回一个新的元组;不会修改原元组;
>>> t1 + t4
(1, 2, 3, 'xyz', 'abc', 'x', 1, 'yz', 45, [2, 4, 6])
t1 * N: 把l1重复N次,返回一个新元组;
>>> t1 * 3
(1, 2, 3, 'xyz', 'abc', 1, 2, 3, 'xyz', 'abc', 1, 2, 3, 'xyz', 'abc')
成员关系判断
in
not in
注意:
虽然元组本身不可变,但如果元组内嵌套了可变类型的元素,那么此类元素的修改不会返回新元组;
例:
>>> t4 = ('x', 1, 'yz', 45, [2, 4, 6])
>>> id(t4)
44058448
>>> t4[4]
[2, 4, 6]
>>> t4[4].pop() 弹出列表内一个元素
6
>>> print t4[4]
[2, 4]
>>> print t4
('x', 1, 'yz', 45, [2, 4])
>>> id(t4)
44058448 由此可见,对元组内列表内的修改也会使元组发生改变,没有返回新元组
4)序列操作总结
Day 4 list 列表的使用方法的更多相关文章
- Python列表的remove方法的注意事项
为何没有删除列表中的全部元素? 解释: 按照执行顺序,第一个空格被删除之后,后面的元素会前移(变成['空格','空格','12','23']),指针下一次会指向新列表的第二个元素(即初始状态的第三个空 ...
- 可变与不可变类型数据,列表的copy方法
我们先来了解一下可变与不可变类型的数据 (1)可变类型:列表,字典(内存中的数据允许被修改) 不可变类型:数字,字符串,元组(内存中的数据不允许被修改) 接着我们通过一个实例来看一看可变与不可变类型数 ...
- [转载]EF或LINQ 查询时使用IN并且根据列表自定义排序方法
原文地址:EF或LINQ 查询时使用IN并且根据列表自定义排序方法作者:李明川 EF和LINQ改变了原有的手写SQL时期的一些编码方法,并且增强了各数据库之间的移植性简化了开发时的代码量和难度,由于很 ...
- Python中列表的各种方法
列表是Python中一种常用的存储信息的方式,所以要熟练掌握列表的各种方法: 首先我们定义一个列表(name),然后练习里面的各种方法: >>> name = ["Sora ...
- python中sorted方法和列表的sort方法使用详解
一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的. 排序,数字.字符串按照ASCII,中文按照unicode从小到大排序 ...
- 孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法
孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) (同步的语音笔记朗读:https://www.ximalaya.com/keji/1 ...
- FTP 无法获取目录列表的处理方法
FTP 无法获取目录列表的处理方法 1.以阿里云的服务器为例 对于阿里云的服务器是因为阿里云为了进一步保护用户的安全利益使用了安全策略组,我们要设置安全策略组对应的端口开启. 首先要设置端口范围,这个 ...
- for循环,数字、字符串和列表内置方法
目录 控制流程之for循环 基本语法 for+break for+continue for+else for循环打印lodaing 数字类型内置方法 整型 int 浮点型 float 字符串内置方法 ...
- Mybatis中实体类属性与数据库列表间映射方法介绍
这篇文章主要介绍了Mybatis中实体类属性与数据列表间映射方法介绍,一共四种方法方法,供大家参考. Mybatis不像Hibernate中那么自动化,通过@Co ...
- python中列表元素连接方法join用法实例
python中列表元素连接方法join用法实例 这篇文章主要介绍了python中列表元素连接方法join用法,实例分析了Python中join方法的使用技巧,非常具有实用价值,分享给大家供大家参考. ...
随机推荐
- Zabbix监控PostgreSQL
目录 Zabbix监控PostgreSQL 1. 安装libzbxpgsql 2. 配置zabbix配置文件zabbix_agentd.conf 3. 创建监控用户 4. 导入监控模板 5. 主机链接 ...
- IIS 设置404页面 显示系统找不到指定的文件
1.原因就是IIS的普通用户没有访问404页面的权限,造成了自定义404页面无法显示.只需要将user用户组具有读的权限即可.
- 【深度好文】多线程之WaitHandle-->派生-》Semaphore信号量构造
Semaphore 继承自WaitHandle. 信号量说简单点就是为了线程同步,或者说是为了限制线程能运行的数量. //创建一个限制资源类 //资源数为5,开放资源数为2 //主线程自动占有3个资源 ...
- sql转化为时间戳
1.转化为时间戳 UNIX_TIMESTAMP():执行使用时间格式如:2009-08-06 10:10:40 .2009-08-06
- DataStage 八、清除日志
DataStage序列文章 DataStage 一.安装 DataStage 二.InfoSphere Information Server进程的启动和停止 DataStage 三.配置ODBC Da ...
- Reverse string using recursion
On-Site Question 3 - SOLUTION Question Given a string, write a function that uses recursion to rever ...
- 将IP地址转化为整数
$ip = 'IP地址';echo $intip = sprintf('%u',ip2long($ip)); //转换为无符号整型echo long2ip($intip);//将整型转换为ip
- PAT甲 1032. Sharing (25) 2016-09-09 23:13 27人阅读 评论(0) 收藏
1032. Sharing (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue To store Engl ...
- hdu 5024 最长的L型
http://acm.hdu.edu.cn/showproblem.php?pid=5024 找到一个最长的L型,L可以是斜着的 简单的模拟 #include <cstdio> #incl ...
- 【lazy标记得思想】HDU3635 详细学习并查集
部分内容摘自以下大佬的博客,感谢他们! http://blog.csdn.net/dm_vincent/article/details/7769159 http://blog.csdn.net/dm_ ...