码迷,mamicode.com
首页 > 编程语言 > 详细

python内置数据结构

时间:2018-09-05 00:56:37      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:ring   数据   sub   出现   max   索引   标题   举例   copy   

深浅拷贝

  • ==比较的是数据内容,如果是True意义为内容相同,引用并不同
  • =操作执行后,前后两个元素的引用地址相同
    浅拷贝

copy() -> List

  • 返回一个新的列表
  • 引用类型只拷贝引用地址

深拷贝

  • 完全拷贝。包括引用类型
    from copy import deepcopy
    lst2=deepcopy.(lst)

随机数

import random

randint(a, b)

  • 返回[a, b]之间的整数,闭区间
    choice(seq)

  • 从非空序列的元素中随机挑选一个元素,比如
    random.choice(range(10))
    ,从0到9中随机挑选一个整数。
    random.choice([1,3,5,7])
    randrange ([start,] stop [,step])

  • 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1。
    random.randrange(1,7,2)
  • 前闭后开
    random.shuffle(list) ->None

  • 就地打乱列表元素
    sample(population, k)

  • 从样本空间或总体(序列或者集合类型)中随机取出k个不同的元素,返回一个新的列表
    元组

  • 有序的元素集合
    初始化:

    t=tuple()
    t=()
    t=(1,)

  • 元组查询与列表类似
  • 元组元素不可修改
    注意:
    对于包含复杂对象的元组,其指向复杂对象的引用地址不可更改,但复杂对象的数据内容可更改
    namedtuple

    from collections import namedtuple
    Point=namedtuple(‘Point‘,[‘x‘, ‘y‘])
    #Point=namedtuple(‘Point‘,‘x y‘) 第二种写法
    p1=Point(11,12)
    print(p1.x,p1.y)
    部分源码:

    if isinstance(field_names, str):
    field_names = field_names.replace(‘,‘, ‘ ‘).split()
    field_names = list(map(str, field_names))
    typename = str(typename)
    字符串

字符串对象不可变
使用‘ ‘、" "、‘‘‘ ‘‘‘包围的字符序列
举例
s1 = ‘string‘
s2 = "string2"
s3 = ‘‘‘this‘s a "String" ‘‘‘
s4 = ‘hello \n magedu.com‘
s5 = r"hello \n magedu.com"
s6 = ‘c:\windows\nt‘
s7 = R"c:\windows\nt"
s8 = ‘c:\windows\nt‘
sql = """select * from user where name=‘tom‘ """
字符串支持使用索引访问
可迭代
join连接

"string".join(iterable) -> str
将可迭代对象的每一个元素用string连接起来
返回一个新字符串对象
+

连接两个字符串
返回一个新字符串对象
字符串分割

split(sep=None, maxsplit=-1) -> list of strings
从左至右
sep 指定分割字符串,缺省的情况下空白字符串作为分隔符
maxsplit 指定分割的次数,-1 表示遍历整个字符串
rsplit(sep=None, maxsplit=-1) -> list of strings
从右向左
splitlines([keepends]) -> list of strings
按照行来切分字符串
keepends 指的是是否保留行分隔符
行分隔符包括\n、\r\n、\r等
partition(sep) -> (head, sep, tail)
从左至右,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组;
如果没有找到分隔符,就返回头、2个空元素的三元组
sep 分割字符串,必须指定
字符串大小写

upper()
全大写
lower()
全小写
大小写,做判断的时候用
swapcase()
交互大小写
字符串排版

title() -> str
标题的每个单词都大写
capitalize() -> str
首个单词大写
center(width[, fillchar]) -> str
width 打印宽度
fillchar 填充的字符
zfill(width) -> str
width 打印宽度,居右,左边用0填充
ljust(width[, fillchar]) -> str
左对齐
rjust(width[, fillchar]) -> str
右对齐
字符串修改

replace(old, new[, count]) -> str
字符串中找到匹配替换为新子串,返回新字符串
count表示替换几次,不指定就是全部替换
strip([chars]) -> str
从字符串两端去除指定的字符集chars中的所有字符
如果chars没有指定,去除两端的空白字符
lstrip([chars]) -> str
从左开始
rstrip([chars]) -> str
从右开始
find(sub[, start[, end]]) -> int
在指定的区间[start, end),从左至右,查找子串sub。找到返回索引,没找到返回-1
rfind(sub[, start[, end]]) -> int
在指定的区间[start, end),从右至左,查找子串sub。找到返回索引,没找到返回-1
index(sub[, start[, end]]) -> int
在指定的区间[start, end),从左至右,查找子串sub。找到返回索引,没找到抛出异常ValueError
rindex(sub[, start[, end]]) -> int
在指定的区间[start, end),从左至右,查找子串sub。找到返回索引,没找到抛出异常ValueError
count(sub[, start[, end]]) -> int
在指定的区间[start, end),从左至右,统计子串sub出现的次数
字符串判断

endswith(suffix[, start[, end]]) -> bool
在指定的区间[start, end),字符串是否是suffix结尾
startswith(prefix[, start[, end]]) -> bool
在指定的区间[start, end),字符串是否是prefix开头
is系列

isalnum() -> bool
是否是字母和数字组成
isalpha()
是否是字母
isdecimal()
是否只包含十进制数字
isdigit()
是否全部数字(0~9)
isidentifier()
是不是字母和下划线开头,其他都是字母、数字、下划线
islower()
是否都是小写
isupper()
是否全部大写
isspace()
是否只包含空白字符

python内置数据结构

标签:ring   数据   sub   出现   max   索引   标题   举例   copy   

原文地址:http://blog.51cto.com/13954894/2170423

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!