zoukankan      html  css  js  c++  java
  • Python 列表,元组,字典

    0)字符串切片

    py_str = 'python'
    >>>py_str[0]    #取第一个字符串,返回值为"p",超出范围会报错
    >>>py_str[-2]    #取倒数第二个字符串,返回值为"o",-1则为倒数第一
    >>>py_str[2:4]    #取第二和第三个字符串,返回值为"th"
    >>>py_str[2:]    #取第二个和后面全部的字符串,返回值为"thon"
    >>>py_str[:4]    #取前四个字符串,返回值为"pyth"
    >>>py_str[::2]    #取(步长值)0,2,4,6,8...相当于[0::2],返回值"pto"
    >>>py_str[1::2]    #返回值"yhn"1,3,5,7...
    >>>py_Str[::-1]    #反着取,返回值"nohtyp"
    >>>t in py_str    #返回true
    >>>t not in py_str    #返回false
    >>>py_str.lower()    #大写转换成小写
    >>>py_str.upper()    #小写转换成大写
    >>>py_str.capitalize()    #首字母大写
    >>>py_str.strip()    #去除字符串两边的空白(包含空格,tab键,回车等)
    >>>py_str.lstrip()    #去除字符串左边的空白
    >>>py_str.rstrip()    #去除字符串右边的空白
    >>>py_str.center(3,'#')    #用三个"#"填充两边,让字符串占中间(居中),输出结果为###python###
    >>>'abc' + 'xyz'    #合并操作,返回'abcxyz'
    >>>'*' * 5    #重复操作,返回'*****'

    1)列表的操作

    >>>alist = [1,2,'bob','alice',[10,20]]
    >>>len[alist]    #输出列表长度,返回5
    >>>alist[0]    #查看列表第一个值,像字符串一样支持下标和切片操作
    >>>alist    #查看列表全部值或者alis[0:5]
    >>>2 in alist    #返回true
    >>>'bob' in alist    #返回true,字符要带引号(单引号和双引号无区别)
    >>>alist.append(4)    #在列表的尾处追价一个4
    >>>alist.insert(3,5)    #在下标为3的位置加一个5
    >>>alist.sort()    #按升序排列,从小到大
    >>>alist.reverse    #翻转,倒序
    >>>alist.pop()    #删除元素,默认删除最后一个
    >>>alist.pop(2)    #根据下标弹出元素

    python 创建二维列表,将需要的参数写入 cols 和 rows 即可

    >>> list_2d = [[0 for col in range(cols)] for row in range(rows)]
    >>> list_2d = [ [0 for i in range(5)] for i in range(5)]    #第一个for把0循环五次,第二个for把第一个for循环五次
    >>> [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    >>> list_2d[0].append(3)
    >>> list_2d[0].append(5)
    >>> list_2d[2].append(7)
    >>> list_2d
    [[0, 0, 0, 0, 0, 3, 5], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 7], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

    2)元组的操作 #相当于静态的列表,一旦定义不可更改,用得比较少,一般用列表比较多

    >>>atuple = (1,"tom",2,"alice")    #注意此处用的是小括号(),列表用的是方括号[]

    3)字典 #用大括号{}定义的键值对(key-value)映射关系,无序类型

    >>>adict = {'name':'bob','age':23}    #不能像列表那样通过下标获取值
    >>>len(adict)    #输出字典长度为2
    >>>name in adict    #返回true
    >>>bob in adict    #返回false
    >>>adict['name']    #取某个键的值,注意带引号
    >>>adict['age'] = 25    #修改或删除已有键/值对
    >>>del adict['name']    #删除键是'name'的条目
    >>>dict.clear()    #清空词典所有条目
    >>>del adict    #删除词典
    >>>print adict.get('age')    #打印age这个key所对应的value值,若没有则返回none
    >>>adict.values()    #以列表返回字典中的所有值
    >>>adict.items()    #数以列表返回可遍历的(键, 值) 元组数组。

    4)数字类型比较
    =按存储模型分类
     -标量类型:数值、字符串
     -容器类型:列表、元组、字典
    =按更新模型分类
     -可变类型:列表、字典
     -不可变类型:数字、字符串、元组
    =按访问模型分类
     -直接访问:数字
     -顺序访问:字符串、列表、元组
     -映射访问:字典
    blist = alist #则blist改变alist也改变,因为两个列表指向同一个内存空间
    clist = alist[:] #alist的数据重头到尾出赋值給clist,clist改变不影响alist,因为clist拿到alist的值去创建了新的内存空间


    5)以上的类型都是可迭代得对象,一般用for循环迭代
    -判断对象是否可迭代:通过collections模块的Iterable类型判断

    >>>from collections import Iterable    #倒入模块
    >>>isinstance('a','bb')    #返回true表示可迭代,false表示不可迭代

    -如何对list实现类似java那样的下标循环?
    python内置的enumerate函数可以把一个list变成(索引-元素)对,这样就可以在for循环中同时迭代索引和元素

    >>>for i,value in enumerate(['a','b','c'])
    >>> print i,value
    0 a
    1 b
    2 c
  • 相关阅读:
    CDN网络(二)之配置和优化CDN核心缓存软件--squid
    CDN网络(一)之典型的CND架构与HTTP协议的缓存控制
    http+mysql结合keepalived做热备
    网络存储(四)之ISCSI的进阶
    Nginx系列3之Nginx+tomcat
    Nginx系列2之Nginx+php
    Nginx系列1之部分模块详解
    网络存储(三)之ISCSI搭建的入门
    网络存储(二)之ISCSI原理
    Testing
  • 原文地址:https://www.cnblogs.com/linyouyi/p/11409822.html
Copyright © 2011-2022 走看看