Python问答

目录

 

1、为什么python print打印有些需要带括号有些不要?

2、print打印版本号?

3、print打印map和reduce结果?

4、python 3 中 reduce函数使用不了?

5、python中出现中文注释报错?

6、Python序列类型

1)字符

2)列表


1、为什么python print打印有些需要带括号有些不要?

python 3.X 版本print打印都必须带括号。


2、print打印版本号?

import sys

sys.version

3、print打印map和reduce结果?

在Python2里,直接使用map就可以打印结果

print(map(lambda x:x*2, [1,2,3]))

但是在Python3里,map返回的结果是迭代器(iterator)

需要先转换为列表list

print(list(map(lambda x:x*2, [1,2,3])))

4、python 3 中 reduce函数使用不了?

在python3中将reduce从全局函数放入到functools模块,使用前需要先引入

from functools import reduce

5、python中出现中文注释报错?

在代码首行添加:

# -*- coding: utf-8 -*- 

6、Python序列类型

标准数据类型

Python3 中有六个标准的数据类型:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

Python3 的六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

序列:
    字符、列表、元组
特点:
    所有序列都支持迭代
    序列表示索引为非负整数的有序对象集合
    字符和元组属于不可变序列,列表可变


1、字符


    字符串字面量:把文本放入单引号、双引号或三引号中;
    文档字串:模块、类或函数的第一条语句是一个字符的话,该 字符串就成为文档字符串,可以使用__doc__属性引用;
        例:

            >>> def printName():
                    "the function is print hello"
                    print 'hello'
            >>> printName.__doc__


运算符:
    索引运算符          s[i]        返回一个序列的元素i
    切片运算符          s[i:j]      返回一个切片
    扩展切片运算符      s[i:j:stride]
支持运算:

    索引、切片、min()、max()、len()等
    len(s)              s中的元素个数
    min(s)              s的最小值
    max(s)              s的最大值


支持方法:

    S.index(sub [,start [,end]])            找到指定字符串sub首次出现的位置
    S.upper()                               将一个字符串转换为大写形式
    S.lower()                               将一个字符串转化为小写形式
    S.join(t)                               使用s作为分隔符连接序列t中的字符串
    S.replace(old, new[, count])            替换一个字符串

2、List列表


列表:容器类型
    任意对象的有序集合,通过索引访问其中的元素,可变对象,长度可变,异构,任意嵌套
    支持在原处修改,修改指定的索引元素,修改指定的分片,删除语句,内置方法(注意:因为支持原处修改,不会改变内存位置,可使用  id() 查看其位置变化)
           
内置方法:

                L.count(value)                     计算value值出现的次数
                L.append(object)                   将一个新元素追加到L末端                    
                L.extend(iterable)                 增加合并列表(第二个列表内容会以单个元素追加至末端)
                L.pop([index])                     返回元素index并从列表中移除它,如果省略则返回并移除列表最后一个元素
                L.remove(key)                      移除值为key的元素
                L.index(value)                     指定值首次出现的位置
                L.insert(index, object)            在索引index处插入值
                L.sort()                           排序
                L.reverse()                        逆序


        
        成员关系判断字符:  
 

in              用法:   item in container
not in               item not in container


       列表复制方式:
            浅复制:两者指向同一内存对象

                    >>> l1 = [ 1,2,3,4 ]
                    >>> l2 = l1
                    >>> id(l1) == id(l1)
                    True                            可以看出两者内存地址相同
                    >>> l1.append('x')
                    >>> print l1
                    [ 1,2,3,4,'x' ]
                    >>> print l2
                     [ 1,2,3,4,'x' ]


            深复制:两者指向不同内存对象
 

                    1)导入copy模块,使用deepcoop方法
                     >>> import copy
                     >>> l3 = copy.deepcopy(l1)
                     >>> id(l3) == id(l1)
                     False                          地址不同
                     
                    2)复制列表的所有元素,生成一个新列表
                    >>> l4 = l1[:]              
                    >>> print l4
                    [ 1,2,3,4,'x' ]
                    >>> l1.append(6)
                    >>> print l1
                    [ 1,2,3,4,'x',6 ]               l1改变
                    >>> print l4
                    [ 1,2,3,4,'x' ]                 l4不变

3、Tuple元组


Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

创建空元组

tup1 = ()
元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (50,)

修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 创建一个新的元组
tup3 = tup1 + tup2

删除元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:

tup = (12, 34.56)
del tup

元组操作符

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

Python 表达式 结果 描述
len((1, 2, 3)) 3 计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print x, 1 2 3 迭代

元组内置函数

Python元组包含了以下内置函数

cmp(tuple1, tuple2)        比较两个元组元素。
len(tuple)                 计算元组元素个数。
max(tuple)                 返回元组中元素最大值。
min(tuple)                 返回元组中元素最小值。
tuple(seq)                 将列表转换为元组。

4、Set(集合)

集合(set)是一个无序不重复元素的序列。

基本功能是进行成员关系测试和删除重复元素。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

5、Dictionary(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。


7、Python可哈希性数据结构

可哈希的数据类型,即不可改变的数据结构(字符串str、元组tuple、对象集objects)。

不可哈希的数据类型,即可改变的数据结构 (字典dict,列表list,集合set)

可哈希的数据结构,可以通过迭代等方法进行去重等;但不可哈希的数据结构,往往在去重的方法上需要做相应的改造,例如嵌套字典的列表,根据字典中的某些元素属性去重,嵌套列表去重等. 


猜你喜欢

转载自blog.csdn.net/weixin_30069221/article/details/81178497