Python 列表(list)操作
创建列表
sample_list = ['a',1,('a','b')]
Python 列表操作
sample_list = ['a','b',0,1,3]
得到列表中的某一个值
value_start = sample_list[0]
end_value = sample_list[-1]
删除列表的第一个值
del sample_list[0]
在列表中插入一个值
sample_list[0:0] = ['sample value']
得到列表的长度
list_length = len(sample_list)
列表遍历
for element in sample_list:
print(element)
Python 列表高级操作/技巧
产生一个数值递增列表
num_inc_list = range(30)
#will return a list [0,1,2,...,29]
用某个固定值初始化列表
initial_value = 0
list_length = 5
sample_list = [ initial_value for i in range(10)]
sample_list = [initial_value]*list_length
# sample_list ==[0,0,0,0,0]
附:python内置类型
1、list:列表(即动态数组,C++标准库的vector,但可含不同类型的元素于一个list中)
a = ["I","you","he","she"] #元素可为任何类型。
下标:按下标读写,就当作数组处理
以0开始,有负下标的使用
0第一个元素,-1最后一个元素,
-len第一个元 素,len-1最后一个元素
取list的元素数量
len(list) #list的长度。实际该方法是调用了此对象的__len__(self)方法。
创建连续的list
L = range(1,5) #即 L=[1,2,3,4],不含最后一个元素
L = range(1, 10, 2) #即 L=[1, 3, 5, 7, 9]
list的方法
L.append(var) #追加元素
L.insert(index,var)
L.pop(var) #返回最后一个元素,并从list中删除之
L.remove(var) #删除第一次出现的该元素
L.count(var) #该元素在列表中出现的个数
L.index(var) #该元素的位置,无则抛异常
L.extend(list) #追加list,即合并list到L上
L.sort() #排序
L.reverse() #倒序
list 操作符:,+,*,关键字del
a[1:] #片段操作符,用于子list的提取
[1,2]+[3,4] #为[1,2,3,4]。同extend()
[2]*4 #为[2,2,2,2]
del L[1] #删除指定下标的元素
del L[1:3] #删除指定下标范围的元素
list的复制
L1 = L #L1为L的别名,用C来说就是指针地址相同,对L1操作即对L操作。函数参数就是这样传递的
L1 = L[:] #L1为L的克隆,即另一个拷贝。
list comprehension
[ <expr1> for k in L if <expr2> ]
2、dictionary: 字典(即C++标准库的map)
dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}
每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。
键是唯一的,字典只认最后一个赋的键值。
dictionary的方法
D.get(key, 0) #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
D.has_key(key) #有该键返回TRUE,否则FALSE
D.keys() #返回字典键的列表
D.values()
D.items()
D.update(dict2) #增加合并字典
D.popitem() #得到一个pair,并从字典中删除它。已空则抛异常
D.clear() #清空字典,同del dict
D.copy() #拷贝字典
D.cmp(dict1,dict2) #比较字典,(优先级为元素个数、键大小、键值大小)
#第一个大返回1,小返回-1,一样返回0
dictionary的复制
dict1 = dict #别名
dict2=dict.copy() #克隆,即另一个拷贝。
3、tuple:元组(即常量数组)
tuple = ('a', 'b', 'c', 'd', 'e')
可以用list的 [],:操作符提取元素。就是不能直接修改元素。
4、string: 字符串(即不能修改的字符list)
str = "Hello My friend"
字符串是一个整 体。如果你想直接修改字符串的某一部分,是不可能的。但我们能够读出字符串的某一部分。
子字符串的提取
str[:6]
字符串包含 判断操作符:in,not in
"He" in str
"she" not in str
string模块,还提供了很多方法,如
S.find(substring, [start [,end]]) #可指范围查找子串,返回索引值,否则返回-1
S.rfind(substring,[start [,end]]) #反向查找
S.index(substring,[start [,end]]) #同find,只是找不到产生ValueError异常
S.rindex(substring,[start [,end]])#同上反向查找
S.count(substring,[start [,end]]) #返回找到子串的个数
S.lowercase()
S.capitalize() #首字母大写
S.lower() #转小写
S.upper() #转大写
S.swapcase() #大小写互换
S.split(str, ' ') #将string转list,以空格切分
S.join(list, ' ') #将list转string,以空格连接
处理字符串的内置函数
len(str) #串长度
cmp("my friend", str) #字符串比较。第一个大,返回1
max('abcxyz') #寻找字符串中最大的字符
min('abcxyz') #寻找字符串中最小的字符
string的转换
oat(str) #变成浮点数,float("1e-1") 结果为0.1
int(str) #变成整型, int("12") 结果为12
int(str,base) #变成base进制整型数,int("11",2) 结果为2
long(str) #变成长整型,
long(str,base) #变成base进制长整型,
字符串的格式化(注意其转义字符,大多如C语言的,略)
str_format % (参数列表) #参数列表是以tuple的形式定义的,即不可运行中改变
>>>print ""%s's height is %dcm" % ("My brother", 180)
#结果显示为 My brother's height is 180cm
。。。。。。。。。。。。。。。。。。
list 和 tuple 的相互转化
tuple(ls)
list(ls)
本文链接:Python 列表(list)操作,转自网络
知识点
相关教程
更多python字典操作
python里的字典就像java里的HashMap,以键值对的方式存在并操作,其特点如下:通过键来存取,而非偏移量;键值对是无序的;键和值可以是任意对象;长度可变,任意嵌套;在字典里,不能再有序列操作,虽然字典在某些方面与列表类似,但不要把列表套在字典上
探索 Python,第 1 部分: Python 的内置数值类型
Python 编程语言具有很高的灵活性,它支持多种编程方法,包括过程化的、面向对象的和函数式的。但最重要的是,在 Python 中编写程序是件令人愉悦的事。该语言对开发进程有支持作用,决不会妨碍它。本文主要介绍 Python 及其内置数值类型。
python2和python3的区别
python2和python3的区别,1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果。 Py3.1性能比Py2.5慢15%,还有很大的提升空间。 2.编码 Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的:
Python资源索引 【转载】
原文地址:http://blog.chinaunix.net/uid-25525723-id-363092.html 在此行者们也只能根据自己的实际开发体验,推荐一些常见领域的优秀资源给好奇的读者们;-) 以下,使用粗略的领域分类,来展示不同层次相关应用的Python 技术: Py 语言自身 就Python语言本身的学习参考资源 常备 建议放在手边随时看的: Python Tu
Python 写的Hadoop小程序
该程序是在python2.3上完成的,python版本间有差异。 Mapper: import sys line_number = 0 tab_number = 0 pv_number = 0 clk_number = 0 if_compressed_tested = 0 if_compressed = 0 #functions: def compressed_stat(line): global
Python基础 缩进和选择
在python中, 去除了i > 0周围的括号,去除了每个语句句尾的分号,还去除了表示块的花括号。多出来了if ...之后的:(冒号), 还有就是x = 1 和 y =2前面有四个空格的缩进。通过这些缩进,python可以识别这两个语句是隶属于if的。
Python基础 运算
Python的运算符和其他语言类似(我们暂时只了解这些运算符的基本用法,方便我们展开后面的内容,高级应用暂时不介绍)1. 数学运算...
Python 字符串操作
Python 字符串操作,字符串序列用于表示和存储文本,python中字符串是不可变的,一旦声明,不能改变 通常由单引号(' ),双引号(" ),三引号(''' """)包围 其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。便捷的多行注释
python top project of 2013
Hi Pythonistas! 测试和调试 Testing & Debugging 框架及Web Frameworks & Web 并发 Concurrency 任务调度 Job Schedulers 实用工具 Utilities & Tools 科学科学及可视化 Data Science & Visualization 编辑器及其改善 Editor
Python解析XML文档
解析XML主要用到pytohn自带的XML库,其次还是lxml库 XML结构,先以一个相对简单但功能比较全的XML文档为例 <?xml version='1.0' encoding='utf-8'?><feed xmlns='http://www.w3.org/2005/Atom' xml:lang='en'> <title>dive into mark&
Python 基础 - 序列
数据类型:sequence (序列),sequence(序列)是一组有顺序的元素的集合,序列可以包含一个或多个元素,也可以是一个没有任何元素的空序列
Mod_python: The Long Story
mod_python: the long story - Grisha Trubetskoy Mod_python: The Long Story Oct 25th, 2013 | Comments This story started back in 1996. I was in my early twenties, working as a programmer a
【转帖】Python 资源索引
原文地址:http://wiki.woodpecker.org.cn/moin/ObpLovelyPython/LpyAttach2ResIdx 经过十数年的发展积累,Python 应用的触角早已深入了各个领域! 在网络中的资源也浩如烟海: 图atta2-1 使用Google 搜索Python 时的反馈 在此行者们也只能根据自己的实际开发体验,推荐一些常见领域的优秀资源给好奇的读者们;-)
Python内建函数(H)
hasattr(object,name) 说明:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect,name)是否抛出异常来实现的)。 参数object:对象。 参数name:特性名称。 示例: >>> hasattr(list, 'append')True>>> hasattr(list,
Python内建函数(D)
dir([object]) 说明:不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。 参数object:对象、变量、类型。 示例: >>> dir()['__builtins__', '__doc__
最新教程
更多java线程状态详解(6种)
java线程类为:java.lang.Thread,其实现java.lang.Runnable接口。 线程在运行过程中有6种状态,分别如下: NEW:初始状态,线程被构建,但是还没有调用start()方法 RUNNABLE:运行状态,Java线程将操作系统中的就绪和运行两种状态统称为“运行状态” BLOCK:阻塞状态,表示线程阻塞
redis从库只读设置-redis集群管理
默认情况下redis数据库充当slave角色时是只读的不能进行写操作,如果写入,会提示以下错误:READONLY You can't write against a read only slave. 127.0.0.1:6382> set k3 111 (error) READONLY You can't write against a read only slave. 如果你要开启从库
Netty环境配置
netty是一个java事件驱动的网络通信框架,也就是一个jar包,只要在项目里引用即可。
Netty基于流的传输处理
在TCP/IP的基于流的传输中,接收的数据被存储到套接字接收缓冲器中。不幸的是,基于流的传输的缓冲器不是分组的队列,而是字节的队列。 这意味着,即使将两个消息作为两个独立的数据包发送,操作系统也不会将它们视为两个消息,而只是一组字节(有点悲剧)。 因此,不能保证读的是您在远程定入的行数据
Netty入门实例-使用POJO代替ByteBuf
使用TIME协议的客户端和服务器示例,让它们使用POJO来代替原来的ByteBuf。
Netty入门实例-时间服务器
Netty中服务器和客户端之间最大的和唯一的区别是使用了不同的Bootstrap和Channel实现
Netty入门实例-编写服务器端程序
channelRead()处理程序方法实现如下
Netty开发环境配置
最新版本的Netty 4.x和JDK 1.6及更高版本
电商平台数据库设计
电商平台数据库表设计:商品分类表、商品信息表、品牌表、商品属性表、商品属性扩展表、规格表、规格扩展表
HttpClient 上传文件
我们使用MultipartEntityBuilder创建一个HttpEntity。 当创建构建器时,添加一个二进制体 - 包含将要上传的文件以及一个文本正文。 接下来,使用RequestBuilder创建一个HTTP请求,并分配先前创建的HttpEntity。
MongoDB常用命令
查看当前使用的数据库 > db test 切换数据库 > use foobar switched to db foobar 插入文档 > post={"title":"领悟书生","content":"这是一个分享教程的网站","date":new
快速了解MongoDB【基本概念与体系结构】
什么是MongoDB MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era. MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
windows系统安装MongoDB
安装 下载MongoDB的安装包:mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi,按照提示步骤安装即可。 安装完成后,软件会安装在C:\Program Files\MongoDB 目录中 我们要启动的服务程序就是C:\Program Files\MongoDB\Server\3.2\bin目录下的mongod.exe,为了方便我们每次启动,我
Spring boot整合MyBatis-Plus 之二:增删改查
基于上一篇springboot整合MyBatis-Plus之后,实现简单的增删改查 创建实体类 添加表注解TableName和主键注解TableId import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baom
分布式ID生成器【snowflake雪花算法】
基于snowflake雪花算法分布式ID生成器 snowflake雪花算法分布式ID生成器几大特点: 41bit的时间戳可以支持该算法使用到2082年 10bit的工作机器id可以支持1024台机器 序列号支持1毫秒产生4096个自增序列id 整体上按照时间自增排序 整个分布式系统内不会产生ID碰撞 每秒能够产生26万ID左右 Twitter的 Snowflake分布式ID生成器的JAVA实现方案