• Python学习


    目录: 

    一. Python标准的数据类型

    二. Python数据类型 - 数字

    三. Python数据类型 - 字符串

    四. Python数据类型 - 列表

    五. Python数据类型 - 元组

    六. Python数据类型 - 字典

    七. 数据类型转换

    一. Python标准的数据类型

    在内存中存储的数据可以有多种类型.

    例如, 一个人的年龄可以用数字来存储, 他的名字可以用字符来存储.

    Python 定义了一些标准类型, 用于存储各种类型的数据.

    Python有五个标准的数据类型:

    • Numbers(数字)
    • String(字符串)
    • List(列表)
    • Tuple(元组)
    • Dictionary(字典)

    二. Python数据类型 - 数字

    数字数据类型用于存储数值.

    他们是不可改变的数据类型, 这意味着改变数字数据类型会分配一个新的对象.

    当你指定一个值时, Number对象就会被创建:

    1 var1 = 1
    2 var2 = 10

    您也可以使用del语句删除一些对象的引用.
    del语句的语法是: 

    1 del var1[,var2[,var3[....,varN]]]]

    您可以通过使用del语句删除单个或多个对象的引用. 例如: 

    1 del var
    2 del var_a, var_b

    Python 2.x 支持四种不同的数字类型:

    • int(有符号整型)
    • long(长整型[也可以代表八进制和十六进制])
    • float(浮点型)
    • complex(复数)

    一些数值类型的实例:

    intlongfloatcomplex
    10 51924361L 0.0 3.14j
    100 -0x19323L 15.20 45.j
    -786 0122L -21.9 9.322e-36j
    080 0xDEFABCECBDAECBFBAEl 32.3+e18 .876j
    -0490 535633629843L -90. -.6545+0J
    -0x260 -052318172735L -32.54e100 3e+26J
    0x69 -4721885298529L 70.2-E12 4.53e-7j


    长整型也可以使用小写"L", 但是还是建议您使用大写"L", 避免与数字"1"混淆. Python使用"L"来显示长整型.
    Python还支持复数, 复数由实数部分和虚数部分构成, 可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

    Python 3.x 中将long长整型替代了int整形, 支持三种不同的数字类型:

    • int(整形) # 相当于Python 2.x 中的long
    • float(浮点型)
    • complex(复数)

    数字类型内置方法:

     1 def selfunc(obj):
     2     return filter(lambda x: not x.startswith("__"), dir(obj))
     3 
     4 a = 10
     5 print(list(selfunc(a))  # 打印a变量下的方法(私有方法不打印)
     6 b = 10.5
     7 print(list(selfunc(b))
     8 
     9 # 执行结果
    10 ['bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
    11 ['as_integer_ratio', 'conjugate', 'fromhex', 'hex', 'imag', 'is_integer', 'real']

    通过上面的代码可以发现, 根据数字具体类型不同, 内置方法也有变化. 

    bit_length: 返回一个int类型数据的二进制位数. 例如:

    1 a = 10 
    2 print(a.bit_length())
    3 # 执行结果
    4 4
    5 # 10 的二进制表示为: 1010 
    6 # 这里返回的 4 代表 10 的二进制最大长度为 4

    # 待更新其他方法使用说明

    三. Python数据类型 - 字符串

    符串或串(String)是由数字、字母、下划线组成的一串字符.
    一般记为 :

    1 s="a1a2···an"(n>=0)

    它是编程语言中表示文本的数据类型.


    python的字串列表有2种取值顺序:

    • 从左到右索引默认0开始的, 最大范围是字符串长度少1
    • 从右到左索引默认-1开始的, 最大范围是字符串开头

    如果你要实现从字符串中获取一段子字符串的话, 可以使用变量 [头下标:尾下标], 就可以截取相应的字符串, 其中下标是从 0 开始算起, 可以是正数或负数, 下标可以为空表示取到头或尾. 例如:

    1 # Python 3.x
    2 
    3 s = "ilovepython"
    4 print(s[1:5])
    5 
    6 运行结果: love

    当使用以冒号分隔的字符串, python返回一个新的对象, 结果包含了以这对偏移标识的连续的内容, 左边的开始是包含了下边界.
    上面的结果包含了s[1]的值l, 而取到的最大范围不包括上边界, 就是s[5]的值p.
    加号(+)是字符串连接运算符, 星号(*)是重复操作. 例如:

     1 # Python 3.x
     2 
     3 str = "Hello World!"
     4 
     5 print(str)  # 输出完整字符串
     6 print(str[0])  # 输出字符串中的第一个字符
     7 print(str[2:5])  # 输出字符串中第三个至第五个之间的字符串
     8 print(str[2:])  # 输出从第三个字符开始的字符串
     9 print(str * 2)  # 输出字符串两次
    10 print(str + "TEST")  # 输出连接的字符串
    1 Hello World!
    2 H
    3 llo
    4 llo World!
    5 Hello World!Hello World!
    6 Hello World!TEST
    执行结果

    字符串内置方法: 

     capitalize() # 将字符串的第一个字母变成大写,其他字母变小写。对于 8 位字节编码需要根据本地环境。

    1 # Python 3.x
    2 str = "this Is String Example....WOW!!!"
    3 print("str.capitalize() : ", str.capitalize())
    4 # 以上实例输出结果如下:
    5 str.capitalize() : This is string example....wow!!!

    casefold()  # 将字符串对象中大写字母转换为小写字母

    1 # 待更新

    center(width[, fillchar])  # 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格。

    • width -- 字符串的总宽度。
    • fillchar -- 填充字符。
    1 # Python 3.x
    2 str = "this is string example....wow!!!";
    3 print("str.center(40, 'a') : ", str.center(40, 'a'))
    4 # 以上实例输出结果如下:
    5 str.center(40, 'a') : aaaathis is string example....wow!!!aaaa

    count(sub, start= 0,end=len(string)) # 用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

    • sub -- 搜索的子字符串
    • start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
    • end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
    1 # Python 3.x
    2 str = "this is string example....wow!!!";
    3 sub = "i";
    4 print("str.count(sub, 4, 40) : ", str.count(sub, 4, 40))
    5 sub = "wow";
    6 print("str.count(sub) : ", str.count(sub))
    7 # 以上实例输出结果如下:
    8 str.count(sub, 4, 40) : 2
    9 str.count(sub, 4, 40) : 1

    encode(encoding='UTF-8',errors='strict')  # 以 encoding 指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案。

    • encoding -- 要使用的编码,如"UTF-8"。
    • errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。
    1 # Python 3.x
    2 str = "this is string example....wow!!!"
    3 print("Encoded String: " + str.encode('base64','strict'))
    4 # 以上实例输出结果如下:
    5 Encoded String: dGhpcyBpcyBzdHJpbmcgZXhhbXBsZS4uLi53b3chISE=

    decode(encoding='UTF-8',errors='strict')  # 以 encoding 指定的编码格式解码字符串。默认编码为字符串编码。

    • encoding -- 要使用的编码,如"UTF-8"。
    • errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。
    1 # Python 3.x
    2 str = "this is string example....wow!!!"
    3 str = str.encode('base64','strict')
    4 print("Encoded String: " + str)
    5 print("Decoded String: " + str.decode('base64','strict'))
    6 # 以上实例输出结果如下:
    7 Encoded String: dGhpcyBpcyBzdHJpbmcgZXhhbXBsZS4uLi53b3chISE=
    8 Decoded String: this is string example....wow!!!

    endswith(suffix[, start[, end]])  # 用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。

    • suffix -- 该参数可以是一个字符串或者是一个元素。
    • start -- 字符串中的开始位置。
    • end -- 字符中结束位置。
     1 #Python 3.x
     2 str = "this is string example....wow!!!";
     3 suffix = "wow!!!";
     4 print str.endswith(suffix);
     5 print str.endswith(suffix,20);
     6 suffix = "is";
     7 print str.endswith(suffix, 2, 4);
     8 print str.endswith(suffix, 2, 6);
     9 # 以上实例输出结果如下:
    10 True
    11 True
    12 True
    13 False

    expandtabs(tabsize=8)  # 把字符串中的 tab 符号(' ')转为空格,tab 符号(' ')默认的空格数是 8。

    • tabsize -- 指定转换字符串中的 tab 符号(' ')转为空格的字符数。
    1 # Python 3.x 
    2 str = "this is	string example....wow!!!"
    3 print("Original string: " + str)
    4 print("Defualt exapanded tab: " + str.expandtabs())
    5 print("Double exapanded tab: " + str.expandtabs(16))
    6 # 以上实例输出结果如下:
    7 Original string: this is string example....wow!!!
    8 Defualt exapanded tab: this is string example....wow!!!
    9 Double exapanded tab: this is string example....wow!!!

    find(str, beg=0, end=len(string))   # 检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

    • str -- 指定检索的字符串
    • beg -- 开始索引,默认为0。
    • end -- 结束索引,默认为字符串的长度。
     1 # Python 3.x 
     2 str1 = "this is string example....wow!!!"
     3 str2 = "exam"
     4 print(str1.find(str2))
     5 print(str1.find(str2, 10))
     6 print(str1.find(str2, 40))
     7 # 以上实例输出结果如下:
     8 15
     9 15
    10 -1

    format() # 字符串格式化

    1 # 待更新

    format_map() # 字符串格式化

    1 # 待更新

    index(str, beg=0, end=len(string)) # 检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。

    • str -- 指定检索的字符串
    • beg -- 开始索引,默认为0。
    • end -- 结束索引,默认为字符串的长度。
     1 #Python 3.x
     2 str1 = "this is string example....wow!!!"
     3 str2 = "exam"
     4 print(str1.index(str2))
     5 print(str1.index(str2, 10))
     6 print(str1.index(str2, 40))
     7 # 以上实例输出结果如下:
     8 15
     9 15
    10 Traceback (most recent call last):
    11 File "test.py", line 8, in 
    12 print str1.index(str2, 40)
    13 ValueError: substring not found
    14 shell returned 1

    isalnum()  # 检测字符串是否由字母和数字组成。

    1 # Python 3.x 
    2 str = "this2009" # 没有空格
    3 print(str.isalnum())
    4 str = "this is string example....wow!!!"
    5 print(str.isalnum())
    6 # 以上实例输出结果如下:
    7 True
    8 False

    isalpha()  # 检测字符串是否只由字母组成。

    1 # Python 3.x 
    2 str = "this" # 没有空格与数字
    3 print(str.isalpha())
    4 str = "this is string example....wow!!!"
    5 print(str.isalpha())
    6 # 以上实例输出结果如下:
    7 True
    8 False

    isdecimal()  # 检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。

    1 # Python 3.x
    2 str = u"this2009"
    3 print(str.isdecimal())
    4 str = u"23443434"
    5 print(str.isdecimal())
    6 # 以上实例输出结果如下:
    7 False
    8 True

    isdigit()  # 检测字符串是否只由数字组成。

    1 str = "123456" # Only digit in this string
    2 print(str.isdigit())
    3 str = "this is string example....wow!!!"
    4 print(str.isdigit())
    5 # 以上实例输出结果如下:
    6 True
    7 False

    isidentifier()  # 是不是一个合法的变量名

    1 # 待更新

    islower()  # 检测字符串是否由小写字母组成。

    1 # Python 3.x
    2 str = "THIS is string example....wow!!!"
    3 print(str.islower())
    4 str = "this is string example....wow!!!"
    5 print(str.islower())
    6 # 以上实例输出结果如下:
    7 False
    8 True

    isnumeric()  # 检测字符串是否只由数字组成。这种方法是只针对unicode对象。

    1 # Python 3.x
    2 str = u"this2009"
    3 print(str.isnumeric())
    4 str = u"23443434"
    5 print(str.isnumeric())
    6 # 以上实例输出结果如下:
    7 False
    8 True

    isprintable()  #

    1 # 待更新

    isspace()   # 检测字符串是否只由空格组成。

    1 # Python 3.x
    2 str = " "
    3 print(str.isspace())
    4 str = "This is string example....wow!!!"
    5 print(str.isspace())
    6 # 以上实例输出结果如下:
    7 True
    8 False

    istitle()  # 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

    1 # Python 3.x
    2 str = "This Is String Example...Wow!!!"
    3 print(str.istitle())
    4 str = "This is string example....wow!!!"
    5 print(str.istitle())
    6 # 以上实例输出结果如下:
    7 True
    8 False

    isupper()  # 检测字符串中所有的字母是否都为大写。

    1 # Python 3.x
    2 str = "THIS IS STRING EXAMPLE....WOW!!!"
    3 print(str.isupper())
    4 str = "THIS is string example....wow!!!"
    5 print(str.isupper())
    6 # 以上实例输出结果如下:
    7 True
    8 False

    join(sequence)  # 用于将序列中的元素以指定的字符连接生成一个新的字符串。

    • sequence -- 要连接的元素序列。
    1 # Python 3.x
    2 str = "-";
    3 seq = ("a", "b", "c") # 字符串序列
    4 print(str.join( seq ))
    5 # 以上实例输出结果如下:
    6 a-b-c

    ljust(width[, fillchar]) # 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

    • width -- 指定字符串长度。
    • fillchar -- 填充字符,默认为空格。
    1 # Python 3.x
    2 str = "this is string example....wow!!!"
    3 print(str.ljust(50, '0'))
    4 # 以上实例输出结果如下:
    5 this is string example....wow!!!000000000000000000

    lower()  # 转换字符串中所有大写字符为小写。

    1 # Python 3.x
    2 str = "THIS IS STRING EXAMPLE....WOW!!!"
    3 print(str.lower())
    4 # 以上实例输出结果如下:
    5 this is string example....wow!!!

    lstrip([chars]) # 用于截掉字符串左边的空格或指定字符。

    • chars --指定截取的字符。
    1 # Python 3.x
    2 str = " this is string example....wow!!! "
    3 print(str.lstrip())
    4 str = "88888888this is string example....wow!!!8888888"
    5 print(str.lstrip('8'))
    6 # 以上实例输出结果如下:
    7 this is string example....wow!!!
    8 this is string example....wow!!!8888888

    maketrans(intab, outtab)   # 用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
    注:两个字符串的长度必须相同,为一一对应的关系。

    • intab -- 字符串中要替代的字符组成的字符串。
    • outtab -- 相应的映射字符的字符串。
    1 # Python 3.x
    2 from string import maketrans # 必须调用 maketrans 函数。
    3 intab = "aeiou"
    4 outtab = "12345"
    5 trantab = maketrans(intab, outtab)
    6 str = "this is string example....wow!!!"
    7 print(str.translate(trantab))
    8 # 以上实例输出结果如下:
    9 th3s 3s str3ng 2x1mpl2....w4w!!!

    partition(str) # 用来根据指定的分隔符将字符串进行分割。方法是在2.5版中新增的。
    # 如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

    1 # Python 3.x
    2 str = "http://www.w3cschool.cc/"
    3 print(str.partition("://"))
    4 # 输出结果为:
    5 ('http', '://', 'www.w3cschool.cc/')

    replace(old, new[, max])   # 把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

    • old -- 将被替换的子字符串。
    • new -- 新字符串,用于替换old子字符串。
    • max -- 可选字符串, 替换不超过 max 次
    1 # Python 3.x
    2 str = "this is string example....wow!!! this is really string"
    3 print(str.replace("is", "was"))
    4 print(str.replace("is", "was", 3))
    5 # 以上实例输出结果如下:
    6 thwas was string example....wow!!! thwas was really string
    7 thwas was string example....wow!!! thwas is really string

    rfind(str, beg=0 end=len(string)) # 返回字符串最后一次出现的位置,如果没有匹配项则返回-1。

    • str -- 查找的字符串
    • beg -- 开始查找的位置,默认为0
    • end -- 结束查找位置,默认为字符串的长度。
     1 # Python 3.x
     2 str = "this is really a string example....wow!!!"
     3 substr = "is"
     4 print(str.rfind(substr))
     5 print(str.rfind(substr, 0, 10))
     6 print(str.rfind(substr, 10, 0))
     7 print(str.find(substr))
     8 print(str.find(substr, 0, 10))
     9 print(str.find(substr, 10, 0))
    10 # 以上实例输出结果如下:
    11 5
    12 5
    13 -1
    14 2
    15 2
    16 -1

    rindex(str, beg=0 end=len(string))   # 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间。

    • str -- 查找的字符串
    • beg -- 开始查找的位置,默认为0
    • end -- 结束查找位置,默认为字符串的长度。
    1 # Python 3.x
    2 str1 = "this is string example....wow!!!"
    3 str2 = "is"
    4 print(str1.rindex(str2))
    5 print(str1.index(str2))
    6 # 以上实例输出结果如下:
    7 5
    8 2

    rjust(width[, fillchar])  # 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

    • width -- 指定填充指定字符后中字符串的总长度.
    • fillchar -- 填充的字符,默认为空格。
    1 # Python 3.x
    2 str = "this is string example....wow!!!"
    3 print(str.rjust(50, '0'))
    4 # 以上实例输出结果如下:
    5 000000000000000000this is string example....wow!!!

    rpartition() #

    1 # 待更新

    rsplit() #

    1 # 待更新

    rstrip([chars])   # 删除 string 字符串末尾的指定字符(默认为空格).

    • chars -- 指定删除的字符(默认为空格)
    1 # Python 3.x
    2 str = " this is string example....wow!!! "
    3 print(str.rstrip())
    4 str = "88888888this is string example....wow!!!8888888"
    5 print(str.rstrip('8'))
    6 # 以上实例输出结果如下:
    7 this is string example....wow!!!
    8 88888888this is string example....wow!!!

    split(str="", num=string.count(str))  # 通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串

    • str -- 分隔符,默认为所有的空字符,包括空格、换行( )、制表符( )等。
    • num -- 分割次数。
    1 # Python 3.x
    2 str = "Line1-abcdef 
    Line2-abc 
    Line4-abcd"
    3 print(str.split())
    4 print(str.split(' ', 1 ))
    5 以上实例输出结果如下:
    6 ['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
    7 ['Line1-abcdef', '
    Line2-abc 
    Line4-abcd']

    splitlines([keepends])  # 按照行(' ', ' ', ')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

    • keepends -- 在输出结果里是否去掉换行符(' ', ' ', '),默认为 False,不包含换行符,如果为 True,则保留换行符。
    1 # Python 3.x 
    2 str1 = 'ab c
    
    de fg
    kl
    '
    3 print(str1.splitlines())
    4 str2 = 'ab c
    
    de fg
    kl
    '
    5 print(str2.splitlines(True))
    6 # 以上实例输出结果如下:
    7 ['ab c', '', 'de fg', 'kl']
    8 ['ab c
    ', '
    ', 'de fg
    ', 'kl
    ']

    startswith(str, beg=0,end=len(string)) # 用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

    • str -- 检测的字符串。
    • strbeg -- 可选参数用于设置字符串检测的起始位置。
    • strend -- 可选参数用于设置字符串检测的结束位置。
    1 # Python 3.x
    2 str = "this is string example....wow!!!"
    3 print(str.startswith( 'this' ))
    4 print(str.startswith( 'is', 2, 4 ))
    5 print(str.startswith( 'this', 2, 4 ))
    6 # 以上实例输出结果如下:
    7 True
    8 True
    9 False

    strip([chars]) # 用于移除字符串头尾指定的字符(默认为空格)。

    • chars -- 移除字符串头尾指定的字符。
    1 # Python 3.x 
    2 str = "0000000this is string example....wow!!!0000000"
    3 print(str.strip('0'))
    4 # 以上实例输出结果如下:
    5 this is string example....wow!!!

    swapcase()  # 用于对字符串的大小写字母进行转换。

    1 str = "this is string example....wow!!!"
    2 print(str.swapcase())
    3 str = "THIS IS STRING EXAMPLE....WOW!!!"
    4 print(str.swapcase())
    5 # 以上实例输出结果如下:
    6 THIS IS STRING EXAMPLE....WOW!!!
    7 this is string example....wow!!!

    title()  # 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写

    1 # Python 3.x 
    2 str = "this is string example....wow!!!"
    3 print(str.title())
    4 # 以上实例输出结果如下:
    5 This Is String Example....Wow!!!

    translate(table[, deletechars])  # 根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中。

    • table -- 翻译表,翻译表是通过maketrans方法转换而来。
    • deletechars -- 字符串中要过滤的字符列表。
    1 # Python 3.x
    2 from string import maketrans # 引用 maketrans 函数。
    3 intab = "aeiou"
    4 outtab = "12345"
    5 trantab = maketrans(intab, outtab)
    6 str = "this is string example....wow!!!"
    7 print(str.translate(trantab))
    8 # 以上实例输出结果如下:
    9 th3s 3s str3ng 2x1mpl2....w4w!!!
    1 # Python 3.x
    2 from string import maketrans # 引用 maketrans 函数。
    3 intab = "aeiou"
    4 outtab = "12345"
    5 trantab = maketrans(intab, outtab)
    6 str = "this is string example....wow!!!"
    7 print(str.translate(trantab, 'xm'))
    8 # 以上实例输出结果:
    9 th3s 3s str3ng 21pl2....w4w!!!

    upper()  # 将字符串中的小写字母转为大写字母。

    1 # Python 3.x 
    2 str = "this is string example....wow!!!"
    3 print("str.upper() : ", str.upper())
    4 # 以上实例输出结果如下:
    5 str.upper() : THIS IS STRING EXAMPLE....WOW!!!

    zfill(width) # 返回指定长度的字符串,原字符串右对齐,前面填充0。

    • width -- 指定字符串的长度。原字符串右对齐,前面填充0。
    1 # Python 3.x
    2 str = "this is string example....wow!!!"
    3 print(str.zfill(40))
    4 print(str.zfill(50))
    5 # 以上实例输出结果如下:
    6 00000000this is string example....wow!!!
    7 000000000000000000this is string example....wow!!!

    四. Python数据类型 - 列表

    List(列表) 是 Python 中使用最频繁的数据类型.

    列表可以完成大多数集合类的数据结构实现. 它支持字符, 数字, 字符串甚至可以包含列表(所谓嵌套).

    列表用[ ]标识. 是python最通用的复合数据类型.

    列表中的值得分割也可以用到变量[头下标:尾下标], 就可以截取相应的列表, 从左到右索引默认0开始的, 从右到左索引默认-1开始, 下标可以为空表示取到头或尾.

    加号(+)是列表连接运算符, 星号(*)是重复操作. 例如: 

     1 # Python 3.x
     2 
     3 list = [ "runoob", 786 , 2.23, "john", 70.2 ]
     4 tinylist = [123, "john"]
     5 
     6 print(list)  # 输出完整列表
     7 print(list[0])  # 输出列表的第一个元素
     8 print(list[1:3])  # 输出第二个至第三个的元素 
     9 print(list[2:])  # 输出从第三个开始至列表末尾的所有元素
    10 print(tinylist * 2)  # 输出列表两次
    11 print(list + tinylist)  # 打印组合的列表
    1 ["runoob", 786, 2.23, "john", 70.2]
    2 runoob
    3 [786, 2.23]
    4 [2.23, "john", 70.2]
    5 [123, "john", 123, "john"]
    6 ["runoob", 786, 2.23, "john", 70.2, 123, "john"]
    执行结果

    列表内置方法: 

    append(obj) # 方法用于在列表末尾添加新的对象。

    • obj -- 添加到列表末尾的对象。
    1 # Python 3.x 
    2 aList = [123, 'xyz', 'zara', 'abc']
    3 aList.append( 2009 )
    4 print("Updated List : ", aList)
    5 # 以上实例输出结果如下:
    6 Updated List : [123, 'xyz', 'zara', 'abc', 2009]

    count(obj) # 方法用于统计某个元素在列表中出现的次数。

    • obj -- 列表中统计的对象。
    1 # Python 3.x 
    2 aList = [123, 'xyz', 'zara', 'abc', 123]
    3 print("Count for 123 : ", aList.count(123))
    4 print("Count for zara : ", aList.count('zara'))
    5 # 以上实例输出结果如下:
    6 Count for 123 : 2
    7 Count for zara : 1

    extend(seq) # 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

    • seq -- 元素列表。
    1 # Python 3.x 
    2 aList = [123, 'xyz', 'zara', 'abc', 123]
    3 bList = [2009, 'manni']
    4 aList.extend(bList)
    5 print("Extended List : ", aList)
    6 # 以上实例输出结果如下:
    7 Extended List : [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']

    index(obj) # 函数用于从列表中找出某个值第一个匹配项的索引位置。

    • obj -- 查找的对象。
    1 # Python 3.x 
    2 aList = [123, 'xyz', 'zara', 'abc']
    3 print("Index for xyz : ", aList.index( 'xyz' ))
    4 print("Index for zara : ", aList.index( 'zara' ))
    5 # 以上实例输出结果如下:
    6 Index for xyz : 1
    7 Index for zara : 2

    insert(index, obj) # 函数用于将指定对象插入列表的指定位置。

    • index -- 对象 obj 需要插入的索引位置。
    • obj -- 要插入列表中的对象。
    1 # Python 3.x 
    2 aList = [123, 'xyz', 'zara', 'abc']
    3 aList.insert( 3, 2009)
    4 print("Final List : ", aList)
    5 # 以上实例输出结果如下:
    6 Final List : [123, 'xyz', 'zara', 2009, 'abc']

    pop(obj=list[-1]) # 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

    • obj -- 可选参数,要移除列表元素的对象。
    1 # Python 3.x 
    2 aList = [123, 'xyz', 'zara', 'abc']
    3 print("A List : ", aList.pop())
    4 print("B List : ", aList.pop(2))
    5 # 以上实例输出结果如下:
    6 A List : abc
    7 B List : zara

    remove(obj) # 函数用于移除列表中某个值的第一个匹配项。

    • obj -- 列表中要移除的对象。
    1 # Python 3.x 
    2 aList = [123, 'xyz', 'zara', 'abc', 'xyz']
    3 aList.remove('xyz')
    4 print("List : ", aList)
    5 aList.remove('abc')
    6 print("List : ", aList)
    7 # 以上实例输出结果如下:
    8 List : [123, 'zara', 'abc', 'xyz']
    9 List : [123, 'zara', 'xyz']

    reverse() # 函数用于反向列表中元素。

    1 # Python 3.x 
    2 aList = [123, 'xyz', 'zara', 'abc', 'xyz']
    3 aList.reverse()
    4 print("List : ", aList)
    5 # 以上实例输出结果如下:
    6 List : ['xyz', 'abc', 'zara', 'xyz', 123]

    sort([func]) # 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

    • func -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
    1 # Python 3.x 
    2 aList = [123, 'xyz', 'zara', 'abc', 'xyz']
    3 aList.sort()
    4 print("List : ", aList)
    5 # 以上实例输出结果如下:
    6 List : [123, 'abc', 'xyz', 'xyz', 'zara']

    clear() # 清空列表内容

    copy() # 浅拷贝列表

    # 待更新深浅拷贝的区别

    五. Python数据类型 - 元组

    元组是另一个数据类型, 类似于List(列表).

    元组用"()"标识. 内部元素用逗号隔开. 但是元组不能二次赋值, 相当于只读列表.

     1 # Python 3.x
     2 
     3 tuple = ( "runoob", 786 , 2.23, "john", 70.2 )
     4 tinytuple = (123, "john")
     5 
     6 print(tuple)  # 输出完整元组
     7 print(tuple[0])  # 输出元组的第一个元素
     8 print(tuple[1:3])  # 输出第二个至第三个的元素 
     9 print(tuple[2:])  # 输出从第三个开始至列表末尾的所有元素
    10 print(tinytuple * 2)  # 输出元组两次
    11 print(tuple + tinytuple)  # 打印组合的元组
    1 ("runoob", 786, 2.23, "john", 70.2)
    2 runoob
    3 (786, 2.23)
    4 (2.23, "john", 70.2)
    5 (123, "john", 123, "john")
    6 ("runoob", 786, 2.23, "john", 70.2, 123, "john")
    执行结果

    以下是元组无效的, 因为元组是不允许更新的. 而列表是允许更新的:

    1 # Python 3.x
    2 tuple = ( "runoob", 786 , 2.23, "john", 70.2 )
    3 list = [ "runoob", 786 , 2.23, "john", 70.2 ]
    4 
    5 tuple[2] = 1000 # 元组中是非法应用
    6 list[2] = 1000 # 列表中是合法应用

    元组内置方法:

    元组与列表类似, 可以理解为是不可变的列表, 所以只有查询统计的方法 count 与 index, 具体使用方法参考列表.

    六. Python数据类型 - 字典

    字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型. 列表是有序的对象结合, 字典是无序的对象集合.

    两者之间的区别在于: 字典当中的元素是通过键来存取的, 而不是通过偏移存取.

    字典用"{ }"标识. 字典由索引(key)和它对应的值value组成.

     1 # Python 3.x
     2 
     3 dict = {}
     4 dict["one"] = "This is one"
     5 dict[2] = "This is two"
     6 
     7 tinydict = {"name": "john","code":6734, "dept": "sales"}
     8 
     9 
    10 print(dict["one"])  # 输出键为"one" 的值
    11 print(dict[2])  # 输出键为 2 的值
    12 print(tinydict)  # 输出完整的字典
    13 print(tinydict.keys())  # 输出所有键
    14 print(tinydict.values())  # 输出所有值
    1 This is one
    2 This is two
    3 {"dept": "sales", "code": 6734, "name": "john"}
    4 ["dept", "code", "name"]
    5 ["sales", 6734, "john"]
    执行结果

     字典内置方法: 

    clear() # 函数用于删除字典内所有元素。

    1 # Python 3.x
    2 dict = {'Name': 'Zara', 'Age': 7}
    3 print("Start Len : %d" % len(dict))
    4 dict.clear()
    5 print("End Len : %d" % len(dict))
    6 # 以上实例输出结果为:
    7 Start Len : 2
    8 End Len : 0

    copy()  # 函数返回一个字典的浅复制。

    1 # Python 3.x
    2 dict1 = {'Name': 'Zara', 'Age': 7} 
    3 dict2 = dict1.copy()
    4 print("New Dictinary : %s" % str(dict2))
    5 # 以上实例输出结果为:
    6 New Dictinary : {'Age': 7, 'Name': 'Zara'}

    fromkeys(seq[, value]))  # 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。

    • seq -- 字典键值列表。
    • value -- 可选参数, 设置键序列(seq)的值。
    1 # Python 3.x
    2 seq = ('name', 'age', 'sex')
    3 dict = dict.fromkeys(seq)
    4 print("New Dictionary : %s" % str(dict))
    5 dict = dict.fromkeys(seq, 10)
    6 print("New Dictionary : %s" % str(dict))
    7 # 以上实例输出结果为:
    8 New Dictionary : {'age': None, 'name': None, 'sex': None}
    9 New Dictionary : {'age': 10, 'name': 10, 'sex': 10}

    get(key, default=None)  # 函数返回指定键的值,如果值不在字典中返回默认值。

    • key -- 字典中要查找的键。
    • default -- 如果指定键的值不存在时,返回该默认值值。
    1 # Python 3.x
    2 dict = {'Name': 'Zara', 'Age': 27}
    3 print("Value : %s" % dict.get('Age'))
    4 print("Value : %s" % dict.get('Sex', "Never"))
    5 # 以上实例输出结果为:
    6 Value : 27
    7 Value : Never

    items()  # 函数以列表返回可遍历的(键, 值) 元组数组。

    1 # Python 3.x
    2 dict = {'Name': 'Zara', 'Age': 7}
    3 print("Value : %s" % dict.items())
    4 # 以上实例输出结果为:
    5 Value : [('Age', 7), ('Name', 'Zara')]

    keys()  # 函数以列表返回一个字典所有的键。

    1 # Python 3.x
    2 dict = {'Name': 'Zara', 'Age': 7}
    3 print("Value : %s" % dict.keys())
    4 # 以上实例输出结果为:
    5 Value : ['Age', 'Name']

    setdefault(key, default=None)   # 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。

    • key -- 查找的键值。
    • default -- 键不存在时,设置的默认键值。
    1 # Python 3.x
    2 dict = {'Name': 'Zara', 'Age': 7}
    3 print("Value : %s" % dict.setdefault('Age', None))
    4 print("Value : %s" % dict.setdefault('Sex', None))
    5 # 以上实例输出结果为:
    6 Value : 7
    7 Value : None

    update(dict2)  # 函数把字典dict2的键/值对更新到dict里。

    • dict2 -- 添加到指定字典dict里的字典。
    1 # Python 3.x
    2 dict = {'Name': 'Zara', 'Age': 7}
    3 dict2 = {'Sex': 'female'}
    4 dict.update(dict2)
    5 print("Value : %s" % dict)
    6 # 以上实例输出结果为:
    7 Value : {'Age': 7, 'Name': 'Zara', 'Sex': 'female'}

    values()  # 函数以列表返回字典中的所有值。

    1 # Python 3.x
    2 dict = {'Name': 'Zara', 'Age': 7}
    3 print("Value : %s" % dict.values())
    4 # 以上实例输出结果为:
    5 Value : [7, 'Zara']

    has_key(key)   # 函数用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false。
    注: Python 2.x 中有这个属性, 在Python 3.x 中被移除了.

    • key -- 要在字典中查找的键。
    1 # Python 2.x
    2 dict = {'Name': 'Zara', 'Age': 7}
    3 print "Value : %s" % dict.has_key('Age')
    4 print "Value : %s" % dict.has_key('Sex')
    5 # 以上实例输出结果为: 6 Value : True 7 Value : False

    七. 数据类型转换

    有时候, 我们需要对数据内置的类型进行转换, 数据类型的转换, 你只需要将数据类型作为函数名即可.

    以下几个内置的函数可以执行数据类型之间的转换. 这些函数返回一个新的对象, 表示转换的值. 

    函数描述

    int(x [,base])

    将x转换为一个整数

    long(x [,base] )

    将x转换为一个长整数

    float(x)

    将x转换到一个浮点数

    complex(real [,imag])

    创建一个复数

    str(x)

    将对象 x 转换为字符串

    repr(x)

    将对象 x 转换为表达式字符串

    eval(str)

    用来计算在字符串中的有效Python表达式,并返回一个对象

    tuple(s)

    将序列 s 转换为一个元组

    list(s)

    将序列 s 转换为一个列表

    set(s)

    转换为可变集合

    dict(d)

    创建一个字典。d 必须是一个序列 (key,value)元组。

    frozenset(s)

    转换为不可变集合

    chr(x)

    将一个整数转换为一个字符

    unichr(x)

    将一个整数转换为Unicode字符

    ord(x)

    将一个字符转换为它的整数值

    hex(x)

    将一个整数转换为一个十六进制字符串

    oct(x)

    将一个整数转换为一个八进制字符串

    # 待补充集合类型, 另外各数据类型方法分别引向单独的博客进行说明

  • 相关阅读:
    GSM Arena 魅族mx四核评测个人翻译
    Oracle Exists用法|转|
    NC公有协同的实现原理|同13的QQ||更新总部往来协同|
    NC客商bd_custbank不可修改账号、名称但可修改默认银行并更新分子公司trigger
    试玩了plsql中test窗口declare声明变量|lpad函数||plsql sql command test window区别|
    使用windows live writer测试
    用友写insert on bd_custbank 触发器和自动更新单位名称2in1
    oracle触发器select into和cursor用法的区别
    |转|oracle中prior的用法,connect by prior,树形目录
    客商增加自动增加银行账户|搞定!||更新使用游标course写法|
  • 原文地址:https://www.cnblogs.com/kys1230/p/6419105.html
Copyright © 2020-2023  润新知