zoukankan      html  css  js  c++  java
  • (2)P_PY(草稿)

    目录:

    一、列表操作

    二、元祖

    三、字符串

    四、字典

    五、集合操作

    六、文件操作

    七、

    一、列表操作

    
    
     # 定义一个列表
    names = ["laiang","gf","renj","chz","yif"]

    1 >>> names = ['zhangsan','lisi','wangmazi',]
    2 >>>
    3 >>> names[0]     #通过索引取值
    4 'zhangsan'
    5 >>> names[2]
    6 'wangmazi'
    7 >>>
    8 >>> names[-1]
    9 'wangmazi
    
    

    一次取多个元素

    
    
    >>> names = ['zhangsan','lisi','wangmazi','1','2','3','4']
    >>>
    >>> names[1:3]
    ['lisi', 'wangmazi']
    >>>
    >>> names[:3]
    ['zhangsan', 'lisi', 'wangmazi']
    >>> names[3:]
    ['1', '2', '3', '4']
    >>>
    >>> names[0::2]
    ['zhangsan', 'wangmazi', '2', '4']
    >>>
    >>>
    
    
    

    追加

    1 >>> names.append('99')
    2 >>> print(names)
    3 ['zhangsan', 'lisi', 'wangmazi', '1', '2', '3', '4', '99']

    插入

    1 >>> names.insert(3,'88')
    2 >>> print(names)
    3 ['zhangsan', 'lisi', 'wangmazi', '88', '1', '2', '3', '4', '99']
    View Code

    删除

    1 >>> names.remove('99')
    2 >>> print(names)
    3 ['lisi', 'wangmazi', '88', '1', '2', '3', '4']
    4 >>>
    View Code

     弹出

     1 >>> print(names)
     2 ['lisi', 'wangmazi', '88', '1', '2', '3', '4']
     3 >>>
     4 >>>
     5 >>>
     6 >>>
     7 >>> names.pop()
     8 '4'
     9 >>> names.pop()
    10 '3'
    11 >>> names.pop()
    12 '2'
    13 >>>
    View Code

    修改

    1 >>> names[0] = 'lisan'
    2 >>>
    3 >>> print(names)
    4 ['lisan', 'lisi', 'wangmazi', '88', '1', '2', '3', '4', '99']
    5 >>>
    6 >>>
    View Code

    扩展

    1 >>> names.extend(b)
    2 >>> print(names)
    3 ['lisi', 'wangmazi', '88', '1', 11, 22, 33, 44]
    4 >>>
    5 >>>
    View Code

    浅copy与深copy

     1 import copy
     2 names = ["laiang","gf","renj",["chz","yif"]]
     3 #names2 = names.copy()
     4 names2 = copy.deepcopy(names)   #导入copy 模块
     5 print(names)
     6 print(names2)
     7 names[0] = "llx"
     8 print(names)
     9 print(names2)
    10 names[3][0] = "陈总"     #深copy 与浅copy  第二个列表相当于只是copy了内存地址
    11                          # 当修改的时候names2也会修改,相当于是共享
    12 print(names)
    13 print(names2)
    14 
    15 
    16 # import copy
    17 # names3 = copy.deepcopy(names)
    18 # print(names3)
    19 '''
    20 
    21 import copy
    22 person = ['name',['a',100]]
    23 
    24 p1 = copy.copy(person)
    25 p2 = person[:]        #实现浅copy的第二种方式
    26 p3 = list(person)        # 工厂函数
    View Code

    统计

    1 >>> names
    2 ['lisi', 'wangmazi', '88', '1', 11, 22, 33, 44]
    3 >>>
    4 >>> names.count(1)
    5 0
    6 >>> names.count(11)
    7 1
    8 >>> names.count(22)
    9 1
    View Code

    排序与翻转

    1 >>> names.sort()
    2 >>> names
    3 [11, 22, 33, 44, '1', '88', 'lisi', 'wangmazi']
    4 >>>
    5 >>> names.reverse()
    6 >>> names
    7 ['wangmazi', 'lisi', '88', '1', 44, 33, 22, 11]
    8 >>>
    View Code

    获取下表

    1 >>> names
    2 ['wangmazi', 'lisi', '88', '1', 44, 33, 22, 11]
    3 >>>
    4 >>> names.index('88')
    5 2
    6 >>>
    7 >>> names.index(22)
    8 6
    9 >>>
    View Code

    二、元祖

    也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表,它只有2个方法,一个是count,一个是index

    1 >>> names2 = ('1','2','3','4')
    2 >>> names2.count('1')
    3 1
    4 >>> names2.index('1')
    5 0
    6 >>>
    View Code

    三、字符串操作

    >>> name3 = 'laiangnadei'
    >>> name3
    'laiangnadei'
    >>> name3.capitalize()         #首字母大写
    'Laiangnadei'
    >>> name3.center(20,"-")
    '----laiangnadei-----'                #以这样的格式输出
    >>>
    >>> name3.count('a')           #统计字符串里有几个a
    3
    >>>
    >>> name3.endswith('ei')     # 判断字符串是否已“ei”结尾
    True
    >>>

    name = "my name is laiang"

    print(name.capitalize()) # 首字母大写
    print(name.count('a'))
    print(name.center(50,'-')) # name 放到中心,前后各50-
    print(name.endswith("al"))


    print(name.isalnum())
    print(name.ljust(50,'*'))
    print(name.rjust(50,'-'))

    print('laiang'.lower()) #小写转换
    print('laiang'.upper()) #大写转换

    四、字典
    字典一种key - value 的数据类型

    字典的特性:

      1、dict是无序的

      2、key必须是唯一的,天生去重

    修改
    1 >>> info
    2 {'k3': '3', 'k2': '2', 'k1': 'a', 'k4': '4'}
    3 >>>
    4 >>> info['k2'] = '22'
    5 >>>
    6 >>> info
    7 {'k3': '3', 'k2': '22', 'k1': 'a', 'k4': '4'}
    8 >>>
    9 >>>
    View Code
    
    

    删除

     1 >>> info
     2 {'k3': '3', 'k2': '22', 'k1': 'a', 'k4': '4'}
     3 >>>
     4 >>> info.pop('k4')
     5 '4'
     6 
     7 
     8 >>> del info['k3']
     9 >>>
    10 >>>
    11 >>> info
    12 {'k2': '22', 'k1': 'a'}
    13 >>>
    View Code

    >>> info
    {'k2': '22', 'k1': 'a'}
    >>>
    >>> info.popitem()    #随机删除
    ('k2', '22')
    >>>

    查找

     1 >>> info
     2 {'k3': '3', 'k1': 'a', 'k5': '5', 'k4': '4'}
     3 >>>
     4 >>>
     5 >>>
     6 >>>
     7 >>> info
     8 {'k3': '3', 'k1': 'a', 'k5': '5', 'k4': '4'}
     9 >>>
    10 >>> "k3" in info
    11 True
    12 >>>
    13 >>> info.get('k3')
    14 '3'
    15 >>>
    16 >>> info['k3']
    17 '3'
    18 >>> info['k9']
    19 Traceback (most recent call last):
    20   File "<stdin>", line 1, in <module>
    21 KeyError: 'k9'
    22 >>>
    View Code

    循环dict

    1 #方法1
    2 for key in info:
    3     print(key,info[key])
    4 
    5 #方法2
    6 for k,v in info.items(): #会先把dict转成list,数据里大时莫用
    7     print(k,v)
    View Code

     购物车练习:

     1 #实现打印商品详细信息,用户输入商品名和购买个数,
     2 #则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
     3 # Author:land
     4 
     5 shopping=[] #定义一个购物车的控列表,等待添加商品
     6 #定义商品列表
     7 shopping_msg={
     8 'apple':20,
     9 'baoma':200000,
    10 'mac':1000,
    11 'lenovo':300,
    12 'chicken':900,
    13 }
    14 
    15 while True:
    16     for item in shopping_msg: #对商品列表循环取值
    17         print(item,shopping_msg[item])  #打印key 及 value
    18     choice=input('Inpute name of commodity>>:').strip()   #让用户输入商品选择
    19     if len(choice) == 0 or choice not in shopping_msg:   #对用户的输入进行判断
    20         print('Name of commdity is error>>:')
    21         continue   #如果输入非法  让其一直从新输入
    22 
    23     while True:  #本次循环是在商品名输入正确的情况下,购买数量输入非法,然后只对购买数量进行从新输入
    24         num = input('The num of purchase>>:').strip()
    25         if num.isdigit():  #对购买数量进行判断是否为数字
    26             break
    27 
    28     shopping.append((choice,shopping_msg[choice],int(num)))  #将信息append到购物车列表中
    29     print(shopping)   #打印购物车信息
     1 #字典练习
     2 #有如下值集合 [11,22,33,44,55,66,77,88,99,90...],
     3 #将所有大于 66 的值保存至字典的第一个key中,
     4 #将小于 66 的值保存至第二个key的值中
     5 sets=[11,22,33,44,55,66,77,88,99,90,]
     6 dic1={'key1':[],'key2':[]}
     7 for num in sets:
     8     if num > 66:
     9         dic1['key1'].append(num)
    10     else:
    11         dic1['key2'].append(num)
    12 print(dic1)
     1 '''
     2 #统计s='hello alex alex say hello sb sb'中每个单词的个数
     3 #结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
     4 
     5 s='hello alex alex say hello sb sb'
     6 words=s.split()  #s.split()得到一个单词的列表
     7 d={} #定义一个空字典
     8 
     9 for word in  words:  #循环这个单词列表
    10     d.setdefault(word,s.count(word))  #对循环到的每一个单词在列表里进行判断次数
    11                 #然后增加到d 字典里,如果遇到重复的单词不做任何修改
    12 print(d)
    13 
    14 #{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2} #最后得到的结果
    15 '''

    五、集合操作

    集合是一个无序的,不重复的数据组合,它的主要作用如下:

    • 去重,把一个列表变成集合,就自动去重了
    • 关系测试,测试两组数据之前的交集、差集、并集等关系

    >>> s = set([1,2,3,4,5,6,])
    >>> s
    set([1, 2, 3, 4, 5, 6])
    >>>
    >>>
    >>> t = set('love')
    >>>
    >>> t
    set(['e', 'l', 'o', 'v'])
    >>>

    >>> a = t | s      #求并集
    >>> a
    set([1, 2, 3, 'e', 5, 6, 'l', 'o', 'v', 4])
    >>>
    >>> b = t & s       #求交集
    >>> b
    set([])
    >>>
    >>> c = t - s          #求差集
    >>> c
    set(['e', 'l', 'o', 'v'])
    >>>
    >>> d = t ^ s                   # 对称差集
    >>> d
    set([1, 2, 3, 4, 5, 6, 'v', 'e', 'l', 'o'])
    >>>

    六、文件操作

    对文件操作流程

    
    
    1. 打开文件,得到文件句柄并赋值给一个变量
    2. 通过句柄对文件进行操作
    3. 关闭文件
    
    

    打开文件的模式有:

    
    
    • r,只读模式(默认)。
    • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
    • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】
    
    

    "+" 表示可以同时读写某个文件

    
    
    • r+,可读写文件。【可读;可写;可追加】
    • w+,写读
    • a+,同a
    
    

    "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)

    
    
    • rU
    • r+U
    
    

    "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

    
    
    • rb
    • wb
    • ab
     
  • 相关阅读:
    LeetCode 227. Basic Calculator II
    LeetCode 224. Basic Calculator
    LeetCode 103. Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 169. Majority Element
    LeetCode 145. Binary Tree Postorder Traversal
    LeetCode 94. Binary Tree Inorder Traversal
    LeetCode 144. Binary Tree Preorder Traversal
  • 原文地址:https://www.cnblogs.com/lxqr/p/8559692.html
Copyright © 2011-2022 走看看