python之3内置容器
所谓内置容器,就是不需要第三方模块,就可以使用的.
>>> li = []
>>> type(li)
<type 'list'>
>>> li = [1,2,3]
>>> li
[1, 2, 3]
len()可以统计list的长度
>>> li
[1, 2, 3]
>>> li[2]
3
>>> len(li)
3
>>> for x in li:
print x
1
2
3
>>> 4 in li
False
>>> 1 in li
True
>>> del li[2]
>>> li
[1, 2]
>>> dir(li)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> li.append(3)
>>> li
[1, 2, 3]
>>> li.extend([4,5,6])
>>> li
[1, 2, 3, 4, 5, 6]
>>> li.extend([range(7,11)])
>>> li
[1, 2, 3, 4, 5, 6, [7, 8, 9, 10]]
>>> li.insert(0,0)
>>> li
[0, 1, 2, 3, 4, 5, 6]
>>> li
[0, 1, 2, 3, 4, 5, 6]
>>> li.index(3,0,2)
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
li.index(3,0,2)
ValueError: 3 is not in list
>>> li.index(3,0,5)
3
>>> li.reverse()
>>> li
[6, 5, 4, 3, 2, 1, 0]
>>> li = [1,2,3,4,5]
>>> type(li)
<type 'list'>
>>> li[2:4]
[3, 4]
>>> li[3:]
[4, 5]
>>> li[:3]
[1, 2, 3]
>>> li[:]
[1, 2, 3, 4, 5]
>>> li[0:-2]
[1, 2, 3]
>>> li[1:3:2]
[2]
#取得奇数
>>> li[::2]
[1, 3, 5]
#取得偶数
>>> li[1::2]
[2, 4]
>>> t1 = ([1,2,3],['a','b','c'])
>>> type(t1)
<type 'tuple'>
>>> t1[0][0] = 100
>>> t1
([100, 2, 3], ['a', 'b', 'c'])
定义单元素元组的时候,元素后面需要加逗号,如果不加则会定义成对应的元素类型,例如:
>>> a = (0)
>>> type(a)
<type 'int'>
>>> a = (0,)
>>> type(a)
<type 'tuple'>
>>> hash(t1)
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
hash(t1)
TypeError: unhashable type: 'list'
>>> s1 = {t1}
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
s1 = {t1}
TypeError: unhashable type: 'list'
>>> s1 = {1,2,3}
>>> s2 = {2,3,4}
>>> s1.difference (s2)
set([1])
>>> s2.difference (s1)
set([4])
>>> s2.symmetric_difference (s1)
set([1, 4])
>>>
>>> s1
set([1, 2, 3])
>>> tuple(s1)
(1, 2, 3)
>>> list(s1)
[1, 2, 3]
>>> li1=[1,1,2,2,3,3]
>>> li1=list(set(li1))
>>> li1
[1, 2, 3]
>>> li2=[1,2,3,4]
>>> li2=iter (li2)
>>> li2.next()
1
>>> li2.next()
2
>>> li2.next()
3
>>> li2.next()
4
>>> li2.next()
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
li2.next()
StopIteration
for语句就是对next方法的调用,当捕获到StopIteration错误的时候,就停止了
>>> d1 = {}
>>> type (d1)
<type 'dict'>
>>> d1 = {'d2':2,'d1':1}
>>> d1
{'d2': 2, 'd1': 1}
>>> type (d1)
<type 'dict'>
>>> d1.keys()
['d2', 'd1']
>>> it = d1.iterkeys()
>>> it.next()
'd2'
>>> it.next()
'd1'
>>> d1.viewkeys()
dict_keys(['d2', 'd1'])
>>> d1.items()
[('d2', 2), ('d1', 1)]
>>> it1=d1.iteritems()
>>> it1.next()
('d2', 2)
>>> v11=d1.viewitems()
>>> v11
dict_items([('d2', 2), ('d1', 1)])
>>> for k,v in d1.items():
print "%s => %s" %(k,v)
d2 => 2
d1 => 1
>>> d1
{'d2': 2, 'd1': 1}
>>> d1.has_key('d3')
False
>>> d1.has_key('d1')
True
>>> d1.get('d1')
1
>>> g1=d1.get('d3')
>>> print g1
None
>>> d1.get('d3','false')
'false'
>>> d1['d3']=3
>>> d1
{'d2': 2, 'd3': 3, 'd1': 1}
>>> d1.update({'d4':4,'d5':5})
>>> d1
{'d4': 4, 'd5': 5, 'd2': 2, 'd3': 3, 'd1': 1}
>>> d1.update(d5=5,d6=6)
>>> d1
{'d5': 5, 'd6': 6, 'd4': 4, 'd5': 5, 'd2': 2, 'd3': 3, 'd1': 1}
>>> d1
{'d6': 6, 'd4': 4, 'd5': 5, 'd2': 2, 'd3': 3, 'd1': 1}
>>> type(d1)
<type 'dict'>
>>> d2=d1.copy()
>>> d2
{'d6': 6, 'd4': 4, 'd5': 5, 'd2': 2, 'd3': 3, 'd1': 1}
>>> l1=[1,2,3,4,5]
>>> [x for x in l1]
[1, 2, 3, 4, 5]
>>> [x+1 for x in l1]
[2, 3, 4, 5, 6]
>>> l1=[1,2,3,4,5]
>>> i1=(x+1 for x in l1)
>>> i1
<generator object <genexpr> at 0x029D29E0>
>>> i1.next()
2
>>> i1.next()
3
>>> i1.next()
4
>>> i1.next()
5
>>> i1.next()
6
>>> i1.next()
Traceback (most recent call last):
File "<pyshell#134>", line 1, in <module>
i1.next()
StopIteration
列表和迭代器的区别就在于,迭代器的输出是可控制的
>>> [x for x in l1 if x%2==0]
[2, 4]
>>> l1=[1,2]
>>> l2=[3,4]
>>> [(x,y) for x in l1 for y in l2]
[(1, 3), (1, 4), (2, 3), (2, 4)]
>>> [x*y for x in l1 for y in l2]
[3, 4, 6, 8]
l1=[1,2]
l2=[3,4]
ret=[]
for x in l1:
for y in l2:
ret.append(x*y)
#!/usr/bin/env python
# encoding:utf-8
#定义第一行列表
li = [1]
#定义总行号
num1 = int(raw_input("请输入行号:"))
#开始循环,row表示每次循环时的行号
for row in range(num1):
#输出每行前的空格,K表示每次输出的个数
for K in range(num1-1):
print ' ',
num1 = num1-1
#输出上次循环所获的行数据,n表示每行的各个元素
for n in iter(li):
print "%s " %n,
#打印每行末的换行符
print
#获取本次循环所得到的行数据,并更新li列表,便于下次循环前输出,zip()函数可以将两个列表,重组成[(x,y)]形式的列表.临时列表a>的目的是为了交错相加,实现杨辉三角的定律,构建下一行列表
a = [0]
a.extend(li)
li.append(0)
li=[x+y for x,y in zip(a,li)]
[root@bogon ~]# python test4.py
请输入行号:6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

在交互式输入的时候,建议使用raw_input,而不是input.
来源: <http://www.cnblogs.com/way_testlife/archive/2011/03/29/1999283.html>
关于添加[0]元素这个,不建议用+号直接添加,即[0]+li,li+[0],因为如此以来,会返回两个新的列表,占用额外内存.python之3内置容器的更多相关文章
- python常用数据类型内置方法介绍
熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...
- Python中的内置函数__init__()的理解
有点意思,本来我是学习java的.总所周知,java也有构造函数,而python在面向对象的概念中,也有构造函数.它就是 __init__(self) 方法. 其实类似于__init__()这种方法, ...
- 使用外部容器运行spring-boot项目:不使用spring-boot内置容器让spring-boot项目运行在外部tomcat容器中
前言:本项目基于maven构建 spring-boot项目可以快速构建web应用,其内置的tomcat容器也十分方便我们的测试运行: spring-boot项目需要部署在外部容器中的时候,spring ...
- python字符串常用内置方法
python字符串常用内置方法 定义: 字符串是一个有序的字符的集合,用与存储和表示基本的文本信息. python中引号中间包含的就是字符串. # s1='hello world' # s2=&quo ...
- python学习交流 - 内置函数使用方法和应用举例
内置函数 python提供了68个内置函数,在使用过程中用户不再需要定义函数来实现内置函数支持的功能.更重要的是内置函数的算法是经过python作者优化的,并且部分是使用c语言实现,通常来说使用内置函 ...
- python常用的内置函数哈哈
python常用的内置函数集合做一个归类用的时候可以查找 abs 返回数字x的绝对值或者x的摸 all (iterable)对于可迭代的对象iterable中所有元素x都有bool(x)为true,就 ...
- python常用的内置函数
python常用的内置函数集合做一个归类用的时候可以查找- abs 返回数字x的绝对值或者x的摸 - all (iterable)对于可迭代的对象iterable中所有元素x都有bool(x)为tru ...
- python字符串处理内置方法一览表
python字符串处理内置方法一览表 序号 方法及描述 1 capitalize()将字符串的第一个字符转换为大写 2 center(width, fillchar) 返回一个指定的宽度 widt ...
- 十六. Python基础(16)--内置函数-2
十六. Python基础(16)--内置函数-2 1 ● 内置函数format() Convert a value to a "formatted" representation. ...
随机推荐
- Python之路第二天,基础(2)-基本数据类型
一.Python数据类型 数 在Python中有4种类型的数,整数,长整数,浮点数和复数. 2是一个整数的例子 长整数不过是大一点的整数 3.23和52.3E是浮点数的例子.E标记表示10的幂.52. ...
- HOG detectMultiScale 参数分析
前段时间学习了HOG描述子及其与SVM结合在行人检测方面的应用. 当我们用训练好的模型去检测测试图像时,我们会用到detectMultiScale() 这个函数来对图像进行多尺度检测. 这是openc ...
- [TYVJ] P1027 木瓜地
木瓜地 背景 Background USACO OCT09 4TH 描述 Description Bessie不小心游荡出Farmer John的田地,而走进了相邻的农民的地.她举起一个木瓜,木瓜 ...
- BZOJ 2436 NOI嘉年华(单调优化)
http://www.lydsy.com/JudgeOnline/problem.php?id=2436 题意:两个会场不能同时表演,但是同一个时间可以同时表演,要求让两个会场表演数量最小的最大,然后 ...
- awk详解
一.简介 强大的文本分析工具,基于指定规则浏览和抽取信息.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理.awk有3个不同版本: awk.nawk和ga ...
- shell脚本中局部变量local
shell脚本中局部变量 在shell中定义函数可以使代码模块化,便于复用代码.不过脚本本身的变量和函数的变量的作用域问题可能令你费解,在这里梳理一下这个问题. (1)Shell脚本中定义的变量是gl ...
- 高仿qq聊天界面
高仿qq聊天界面,给有需要的人,界面效果如下: 真心觉得做界面非常痛苦,给有需要的朋友. chat.xml <?xml version="1.0" encoding=&quo ...
- 04747_Java语言程序设计(一)_第10章_网络与数据库编程基础
例10.1说明InetAddress类的用法的应用程序. public class Example10_1 { public static void main(String args[]) { try ...
- Python多进程(multiprocessing)
Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊.普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为 ...
- A星算法
没有采用二叉堆算法优化, 学习了几天终于搞除了一个demo, 这个列子如果点击按钮生成的方块大小不正确,可以先设置下预设调成相应的大小 只能上下左右走 using UnityEngine; usi ...