zoukankan      html  css  js  c++  java
  • 小甲鱼:Python学习笔记002_数组_元组_字符串

    创建普通数组

    >>> member=["山东黄金","九阳股份"]

    >>> member

    ['山东黄金', '九阳股份']

    创建混合数组(数组中存放各种类型的数据)

    >>> mix=[1,2.3,"520",["Haha"]]

    >>> mix

    [1, 2.3, '520', ['Haha']]

    创建一个空数组

    >>> empty=[]

    >>> empty

    []

    向数组中添加元素   

    append(), 追加一个元素到数组末尾

    extend(), 用一个列表扩展另一个列表,也是将元素追加到末尾

    insert(), 将一个元素插入到数组指定的位置

    >>> member.append("深圳机场")

    >>> len(member)

    3

    >>> 

    >>> member.extend(["招商轮船","平安银行"])

    >>> member

    ['山东黄金', '九阳股份', '深圳机场', '招商轮船', '平安银行']

    >>> len(member)

    5

    >>> member.insert(2,"沱牌舍得")

    >>> member

    ['山东黄金', '九阳股份', '沱牌舍得', '深圳机场', '招商轮船', '平安银行']

    >>> 

    获取数组中某个元素

    >>> member[1]

    '九阳股份'

    >>> 

    >>> member[1] = "九阳股份-九阳神功"

    >>> member

    ['山东黄金', '九阳股份-九阳神功', '沱牌舍得', '深圳机场', '招商轮船', '平安银行']

    >>> 

    删除数组中的元素

    remove(),删除指定名称元素, 如果指定的值不存在,会报错

    del  ,它是一个语句,不是方法,可以删除整个数组,也可以删除指定位置的元素

    pop() ,从数组中删除最后一个元素,并返回这个值,也可以去除指定下标的元素

    >>> member.remove("山东黄金")

    >>> member

    ['九阳股份-九阳神功', '沱牌舍得', '深圳机场', '招商轮船', '平安银行']

    >>> del member[1]

    >>> member

    ['九阳股份-九阳神功', '深圳机场', '招商轮船', '平安银行']

    >>> 

    >>> 

    >>> last = member.pop()

    >>> member

    ['九阳股份-九阳神功', '深圳机场', '招商轮船']

    >>> last

    '平安银行'

    >>> item=member.pop(1)

    >>> member

    ['九阳股份-九阳神功', '招商轮船']

    >>> item

    '深圳机场'

    >>>

     列表分片:  可以实现一次性获取多个元素

    >>> member[0:1]  # 这个是拷贝出来的内容,原数组不变

    ['九阳股份-九阳神功']

    >>> member

    ['九阳股份-九阳神功', '招商轮船']

    >>> 

    >>> member[:1]    #下标为1之前的都获取到

    ['九阳股份-九阳神功']

    >>> member[1:]   #从下标为1开始获取

    ['招商轮船']

    >>> member[:]    #获取整个数组

    ['九阳股份-九阳神功', '招商轮船']

    >>> 

    两个冒号是每隔多少个取

     [1::2],从下标1开始,每隔2个取值

     [::2],从下标0开始,每隔2个取值

    典型的就是取100以内的奇偶数

    # 列表切片例子
    
    # 查找列表当中‘yang’元素出现的位置
    
    
    name_list = ['huang','yang','zhang','li','qian','yang','hu','gao']
    first_pos = 0
    
    #统计‘yangw’出现的次数,根据次数循环找位置
    for i in range(name_list.count('yang')):
        #下一次查找的子列表
        new_list = name_list[first_pos:]
        # 下一次查找的位置
        next_pos = new_list.index('yang') + 1
    
        print ('Find Position:',first_pos + new_list.index('yang'))
    
        first_pos += next_pos
    
    
        '''
        #1   new_list = ['huang','yang','zhang','li','qian','yang','hu','gao']
             next_pos = 1 + 1
             first_pos = 0 + 2
    
        #2    new_list =['zhang','li','qian','yang','hu','gao']
             next_pos = 3 +1
             first_pos = 3 + 4
    
        '''
    
        

    元素在不在数组中, 可以使用 in  或 not in

    >>> 

    >>> "awei" not in member

    True

    >>> "招商轮船" in member

    True

    >>> 

    #指定元素出现的次数

    >>> member.count("haha")

    0

    >>> member.count("招商轮船")

    1

    # 指定元素在数组中的位置

    >>> member.index("招商轮船")

    1

    >>> 

    翻转数组

    >>> member.reverse()

    >>> member

    ['招商轮船', '九阳股份-九阳神功']

    >>> 

    排序 sort ,它是一种归并排序

    >>> member.sort()

    >>> member

    ['九阳股份-九阳神功', '招商轮船']

    >>> 

    >>> member.sort(reverse=True)

    >>> member

    ['招商轮船', '九阳股份-九阳神功']

    >>> 

    再次强调,  

    >>> member1=member[:]  #是一种数组的拷贝

    >>> member1

    ['招商轮船', '九阳股份-九阳神功']

    >>> member2=member   #不是拷贝,引用着同一个数组

    >>> member2

    ['招商轮船', '九阳股份-九阳神功']

    >>> member.sort()

    >>> member1

    ['招商轮船', '九阳股份-九阳神功']

    >>> member2

    ['九阳股份-九阳神功', '招商轮船']

    >>> 

    元组tuple和数组是非常相近的,只是元组是不能被修改的

    对于元组来说, 逗号是关键,小括号不一定非要有

    >>> items=("九阳","大船","平安","黄金")

    >>> items

    ('九阳', '大船', '平安', '黄金')

    >>> items[2]

    '平安'

    >>> items[:1]

    ('九阳',)

    >>> items[2:]

    ('平安', '黄金')

    >>> items2=items[:]

    >>> items2

    ('九阳', '大船', '平安', '黄金')

    >>> 

    元组能不能变相改变呢,答案是可以的.

    >>> items2 = items2[:1]+("白云山",)+items2[1:]

    >>> items2

    ('九阳', '白云山', '大船', '平安', '黄金')

    >>> 

    >>> str1= 'cxn ,wo yao cao ni !'

    >>> str1

    'cxn ,wo yao cao ni !'

    >>> #取字符串的某个字符,直接跟数组一样,使用下标方式

    >>> str1[1]

    'x'

    >>> #它也像元组一样,可以使用分片

    >>> #它跟元组一样,也是不可改变的,我们可以利用切片的方式改变

    >>> str2 = str1[:5]+"我插入进来了啊" + str1[5:]

    >>> str2

    'cxn ,我插入进来了啊wo yao cao ni !'

    >>> 

    >>> #字符串的方式有很多

    >>> 

    >>> # 1. 将字符串第一个字母改为大写

    >>> str3="wo xiang ri nv ren !";

    >>> str3.capitalize()

    'Wo xiang ri nv ren !'

    >>> str3

    'wo xiang ri nv ren !'

    >>> 

    >>> # 把整个字符串的所有字符改为小写

    >>> 

    >>> str4=" I LIKE YOU"

    >>> str4.casefold()

    ' i like you'

    >>> 

    >>> #字符串居中,并使用空格填充至长度width的新字符串

    >>> 

    >>> str4.center(20)

    '     I LIKE YOU     '

    >>> 

    >>> #返回sub在字符串中出现的次数,start end表示范围(可选)

    >>> str4.count("e")

    0

    >>> # 对字符串进行编码

    >>> str4="杨伟"

    >>> str4.encode(encoding="utf-8",errors="strict")

    b'xe6x9dxa8xe4xbcx9f'

    >>> 

    >>> # 检查字符串是否以sub字符串结束,返回 True | False

    >>> 

    >>> str4.endswith("伟")

    True

    >>> # endswith(sub [,start] [,end])方法

    >>> 

    >>> 

    >>> #把字符串中的 tab符号( )转换为空格,如果不指定参数,默认空格是8

    >>> #expandtabs([tabsize=8])

    >>> str4="I love you"

    >>> str4.expandtabs()

    'I       love    you'

    >>> 

    >>> #检测sub是否包含在字符串中,如果有返回索引值,否则返回-1

    >>> #find(sub [,start] [,end])

    >>> str4.find("you")

    7

    >>> #index(sub [,start][,end]),与find一样,不过如果sub不在sring中会抛异常

    >>> str4.index("you")

    7

    >>> str4.index("ni")

    Traceback (most recent call last):

      File "<pyshell#55>", line 1, in <module>

        str4.index("ni")

    ValueError: substring not found

    >>> 

    >>> # 有很多判断字符串的方法,以 is开头,这么不再说明

    >>> 

    >>> # join(sub)  以字符串作为分隔符,插入到sub中所有的字符之间

    >>> str4.join("123")

    '1I love you2I love you3'

    >>> # 使用join比起 字符串+的操作更节约内存开销

    >>> a = ['a','b','c']
    >>>
    >>> b = ''.join(a)
    >>> b
    'abc'
    >>>

    >>> # lower()小写  , upper() 大写

    >>> # ljust(width) 返回一个左对齐的字符串,并使用空格填充至width长度

    >>> 

    >>> str4.ljust(20)

    'I love you          '

    >>> 

    >>> #lstrip() 去掉字符串左边的所有空格

    >>> str4="    123456"

    >>> str4

    '    123456'

    >>> str4.lstrip()

    '123456'

    >>> 

    >>> #rstrip() 去掉字符串右边的所有空格

    >>> 

    >>> #partition(sub) 找到子字符串sub,把字符串分成3个元组(pre_sub,sub,fol_sub),r如果字符串中不包含sub,返回('原字符串',"","")

    >>> 

    >>> str5=" ni hao ma ,qinqin"

    >>> str5.partition("qin")

    (' ni hao ma ,', 'qin', 'qin')

    >>> 

    >>> # replace(old,new,[,count]) 字符串替换,如果指定count次,则替换不超过count次

    >>> 

    >>> str5.replace("qin","exin")

    ' ni hao ma ,exinexin'

    >>> 

    >>> ##有一些以r开始的方法,表示从右边开始查找等等,不再赘述

    >>> 

    >>> #split(sep=None,maxsplit=-1) 不带参数默认以空格切分,返回数组

    >>> str5.split()

    ['ni', 'hao', 'ma', ',qinqin']

    >>> str5.split("q")

    [' ni hao ma ,', 'in', 'in']

    >>> 

    >>> # 去掉字符串前后空格

    >>> #strip([chars]), chars参数可以定制删除的字符

    >>> 

    >>> str5.strip();

    'ni hao ma ,qinqin'

    >>> 

    >>> #swapcase() 翻转字符串的大小写

    >>> 

    >>># max(str) max(str) , 寻找字符串中的最大字符    min(str), 寻找字符串中的最小字符

    >>> #字符串格式化


    >>> #1,使用位置参数表示
    >>> "{0} love {1}.{2}".format("I","fishc","com")
    'I love fishc.com'

    >>> #关键字参数  # 关键字参数必须指定谁的值是多少
    >>> "{a} love {b}.{c}".format(a="I",b="fishc",c="com")
    'I love fishc.com'

    >>>
    >>> # 位置参数和关键字参数也可以一起使用,但是位置参数必须在前面
    >>>
    >>> "{0} love {b}.{c}".format("I",b="fishc",c="com")
    'I love fishc.com'
    >>>
    >>> #{}也是可以被转义的,它使用{}转义
    >>>
    >>> print("{{0}}".format("不打印"))
    {0}
    >>>

    字符串格式化符号含义及转义字符含义
    http://bbs.fishc.com/thread-39140-1-1.html
    (出处: 鱼C论坛)

    >>> # 字符串,数组,元组 都是可迭代对象
    >>> # list() 是将可迭代的对象转换为数组
    >>> a="12345"
    >>> list(a)
    ['1', '2', '3', '4', '5']
    >>> # tuple([iterable]),把一个可迭代对象转换为元组
    >>> # str(obj) ,把一个对象转换为字符串
    >>>
    >>> # len(sub), 返回参数的长度
    >>>
    >>> len(a)
    5
    >>> #max(),返回序列或者参数集合中的最大值
    >>> max(list(a))
    '5'
    >>> numbers=(1,4,-5,10)
    >>> max(numbers)
    10
    >>> #min(), 与max()使用方式一样
    >>> # 使用max()、min()方法,序列(数组、元组、字符串)的类型必须是一样的
    >>>
    >>> b=["1","2","3",4]
    >>> max(b)
    Traceback (most recent call last):
    File "<pyshell#22>", line 1, in <module>
    max(b)
    TypeError: unorderable types: int() > str()
    >>>
    >>> b.pop()
    4
    >>> max(b)
    '3'
    >>> # sum(iterable[,start=0]) ,返回序列iterate和可选参数start的总和
    >>>
    >>> # 迭代器中也必须是相同类型,才能做相加操作
    >>>
    >>>
    >>> # sorted(),排序
    >>> sorted(numbers)
    [-5, 1, 4, 10]
    >>> # reversed() ,它返回的是迭代器对象
    >>> reversed(numbers)
    <reversed object at 0x02168ED0>
    >>> list(reversed(numbers))
    [10, -5, 4, 1]
    >>>
    >>> # enumerate(),枚举列表,结果是键值对形式组成的数组
    >>>
    >>> enumerate(numbers)
    <enumerate object at 0x021710D0>
    >>> list(enumerate(numbers))
    [(0, 1), (1, 4), (2, -5), (3, 10)]
    >>>
    >>> # zip()方法,还是看例子就明白了
    >>> a1 = [1,2,3,4,5,6]
    >>> a2 = [3,4,5,6]
    >>> zip(a1,a2)
    <zip object at 0x021711C0>
    >>> list(zip(a1,a2))
    [(1, 3), (2, 4), (3, 5), (4, 6)]
    >>>

    元组与列表的区别:

    元组是不可改变的,列表是可以改变的;

    元组和列表之间是可以相互转换的, 元组转成列表使用 list(), 列表转成元组tuple()

    元组一般就使用两个方法 index()和count() 方法.

    ----------- 赠人玫瑰,手有余香     如果本文对您有所帮助,动动手指扫一扫哟   么么哒 -----------


    未经作者 https://www.cnblogs.com/xin1006/ 梦相随1006 同意,不得擅自转载本文,否则后果自负
  • 相关阅读:
    选择LDO的方法(转)
    详细讲解MOSFET管驱动电路(转)
    队列--参考源码(转)
    锂电池保护板原理(转)
    低电压锁定(UVLO) (转)
    i2c的时钟延展问题(转)
    I2C死锁原因及解决方法(转)
    记录cocos2d-x3.0版本号更改内容官方说明
    c#面试题总结
    【面试】【Spring常见问题总结】【07】
  • 原文地址:https://www.cnblogs.com/xin1006/p/4937282.html
Copyright © 2011-2022 走看看