1. 元组

  元组由不同元素组成,每个元素可以存储不同类型的数据,元组是有序的,元组创建后不能再做任何修改。

  元组的创建:

tuple = ('a','b','c','d')

  如果创建的元组只有1个元素,需要后面加','逗号,不然python无法区分变量是表达式还是元组,如下案例。

t = ('abc')
print(t[0])
print(type(t)) t1 = ('abc',)
print(t1[0])
print(type(t1)) '''
a
<class 'str'>
abc
<class 'tuple'>
'''

元组的方法:

  • index
def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
"""
T.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
"""
return 0 t = (1,2,'d',1,1,1) #index
print("index:",t.index(1))
print("index:",t.index(1,2,5))
print("count:",t.count(1))
  • count
def count(self, value): # real signature unknown; restored from __doc__
""" T.count(value) -> integer -- return number of occurrences of value """
return 0 #count
t = (1,2,'d',1,1,1)
print(t.count(1)) #4
  • 取值与切片

  元组的下标从0开始,索引的值可以为0、正整数或负整数。

#取值tuple[n]
#切片tuple[m:n]
t = ('abc','def','ghi')
print(t[1]) #def
print(t[1:]) #('def', 'ghi')
print(t[:]) #('abc', 'def', 'ghi')
print(t[0:-2]) #('abc',)
print(t[0:-1]) #('abc', 'def')
  • 二元元组
#二元元组
t = ((1,2,3),('a','b','c'))
print(t[0][1])
  • 元组的遍历
#元组遍历
t1 = ('zhangsan','lisi',250)
for i in t1:
print(i) #二元元祖遍历
t2 = (t1,(111,222,'333'))
#遍历方法一
for x in t2:
for y in x: #这里x的类型是tuple
print(y) #遍历方法二
for x in range(len(t2)):
for y in range(len(t2[x])): #这里x的类型是int
print(t2[x][y])
  • 元组的“打包”和“解包”

  创建元组的过程,python称为“打包”,“解包”则是将元组的各个元素分别赋值给多个变量。

#元组的打包与解包

t = ('apple','banana','grape','orange')
a,b,c,d = t
print(a,b,c,d) #apple banana grape orange

 2. 列表

  列表与元组类似,用[]表示,有序的,支持增删改查。

列表的方法:

#列表用一对[]表示

names = ["zhangsan","lisi","wangwu",'zhangsan','1',"2","zhangsan",'a','lisi','b']
print(names) #append 增加
names.append("cc")
print(names) #insert 插入
names.insert(1,"dd") #在该下标位置插入元素
print(names) #切片
na = names[1:3] #顾头不顾尾
print("切片:",na)
#步长切片
na = names[1:5:3] #names[::3]
print("步长切片:",na) #修改元素
names[1] = 'DD'
print(names) #reverse反转
names.reverse()
print("reverse:\n",names) #count计数
t = names.count("lisi")
print("count:",t) #index查看元素下标
t = names.index("lisi") #默认显示查找到的第一个元素的下标
print("index:",t)
t = names.index('lisi',3,10)
print("index:",t) #extend扩展列表
names2 = ['zhangsan','lisi2','wangwu']
names.extend(names2)
print("extend:\n",names)
#也可以使用"+"、"+="进行扩展
names3 = names + names2
print("names+names2:\n",names3)
names += names2
print("names+=names2:\n",names) #sort排序
names.sort()
print("sort:\n",names) #删除元素,有三种方法
#1.del 2.remove 3.pop
del names[1] #del names 删除变量
print(names)
names.remove("lisi") #删除第一个lisi
print(names)
names.pop() #默认删除最后一个元素
print(names)
names.pop(2) #加下标就是删除该下标所指的元素
print(names) #循环列表
for i in names:
print(i) #len(list)获取列表长度
print("len(names:",len(names)) #clear清空列表
names.clear()
print(names)

enumerate读取下标与内容

#读取列表下标与内容的方法
li = ['a','b','c']
for i in (enumerate(li)):
print(i) for index,item in enumerate(li):
print(index,item) print("-------华丽的分割线-------")
#传统方法
for i in li:
print(li.index(i),i)

 列表的深浅copy

  假设一个列表有多层,比如['a',['b','c'],'d'],那么浅copy只是拷贝了列表的第一层,列表的第二层(更深层的)只是第二层列表的一个引用(内存地址相同)。如果需要完全的拷贝列表,则需要使用深copy,是通过python内置的copy模块来实现的。

#!/usr/bin/env python
# -*- coding:utf-8 -*- #深浅copy,浅copy只拷贝列表第一层元素,更深层的只是一层引用 import copy #列表赋值,只是列表内存地址的引用
li1 = ['a','b',['A','B','C']]
li2 = li1
li1[1] = 'bb'
li1[2][1] = 'BB'
print(li1,li2) #两个列表完全相同,因为只是内存地址的引用
print("id(li1):",id(li1))
print("id(li2):",id(li2)) #两个列表的内存地址完全一致 #浅copy的几种方法
li3 = li1.copy()
li4 = li1[:]
li5 = copy.copy(li1)
li6 = list(li1) #工厂模式
#查看浅copy的内存
#第二层['A','B','C']无法拷贝,只是一层引用,所以内存地址一样
print(id(li1[2]),id(li3[2]),id(li4[2]),id(li5[2]),id(li6[2]))
print(id(li1[0]),id(li3[0]),id(li4[0]),id(li5[0]),id(li6[0]))
li3[0] = 'a3'
li4[0] = 'a4'
li5[0] = 'a5'
li6[0] = 'a6'
print(id(li1[0]),id(li3[0]),id(li4[0]),id(li5[0]),id(li6[0])) #深拷贝就是完全复制一份
print("\n\n----浅copy应用----")
stu = ['name',['平均分:',80]]
stu1 = stu.copy()
stu2 = stu[:]
stu3 = copy.copy(stu)
stu4 = list(stu)
stu1[0] = "zhangsan"
stu2[0] = 'lisi'
stu3[0] = 'wangwu'
stu4[0] = '250'
print(stu1)
print(stu2)
print(stu3)
print(stu4)
stu1[1][1] = 90
print(stu1,stu2,stu3,stu4) print("\n\n======深拷贝======")
l = ['a','b',['A','B',['C','D']]]
l1 = copy.deepcopy(l)
print(id(l),id(l1)) #两个列表内存地址不一致,也就是实现了完全拷贝
l[0] = 'aa'
l1[2][0] = 'AA'
l[2][2][0] = 'CC'
print("l ",l)
print("l1",l1)

列表实现的堆栈和队列

  堆栈和队列是数据结构中常用的数据结构,列表可以用来实现堆栈和队列。
  堆栈是指最先进入堆栈的元素最后才输出,即“后进先出”。栈的插入、弹出是通过栈首指针控制的。插入一个新的元素,指针移动到新元素的位置;弹出一个元素,指针移到下面一个元素的位置,即原堆栈倒数第二个元素的位置,该元素称为栈顶元素。
  队列是指最先进入队列的元素最先输出,即“先进先出”。队列的插入、弹出是分别通过队首指针和队尾指针控制的。插入一个新元素,队尾指针移动到新元素的位置;弹出一个元素,队首指针移动到原队列中第二个元素的位置,该元素称为队列的第一个元素。

通过append()和pop()模拟两种数据结构:

li = ['a','b','c','d']
#先进后出
li.append('e')
print(li.pop()) #e
#先进先出
li.append('f')
print(li.pop(0)) #a

3. 字典

  字典是由{}创建,由"键-值"对组成的集合,字典中的"值"通过"键"来引用。字典是无序的,key必须是唯一的,可以增删改查。

字典的方法:

#字典的访问与修改
dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
#通过key访问value
print(dic.get('a')) #appale
print(dic['a']) #appale #修改value
dic['a'] = 'APPALE'
print(dic) #{'a': 'APPALE', 'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog'} #添加元素
dic.setdefault("e")
print(dic) #{'a': 'APPALE', 'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog', 'e': None}默认value是None
#赋值
dic.setdefault('e','egg')
#添加的同时赋值
dic.setdefault('p','pig')
print(dic)
#{'a': 'APPALE', 'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog', 'e': None, 'p': 'pig'} #判断k是否存在字典中
dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print('a' in dic) #True
print('A' in dic) #False

源代码:

class dict(object):
"""
dict() -> new empty dictionary
dict(mapping) -> new dictionary initialized from a mapping object's
(key, value) pairs
dict(iterable) -> new dictionary initialized as if via:
d = {}
for k, v in iterable:
d[k] = v
dict(**kwargs) -> new dictionary initialized with the name=value pairs
in the keyword argument list. For example: dict(one=1, two=2)
"""
def clear(self): # real signature unknown; restored from __doc__
""" D.clear() -> None. Remove all items from D. """
pass
#清空字典 dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
dic.clear()
print(dic) '''
{}
''' def copy(self): # real signature unknown; restored from __doc__
""" D.copy() -> a shallow copy of D """
pass
#浅拷贝,只拷贝第一层 dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
#字典的拷贝,同列表的深浅拷贝
dic1 = dic.copy()
print(dic1)
print(id(dic),id(dic1))
dic['b'][0]='BANANA'
print(dic,dic1) @staticmethod # known case
def fromkeys(*args, **kwargs): # real signature unknown
""" Returns a new dict with keys from iterable and values equal to value. """
pass
#Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。 seq = ('appale', 'banana', 'cat')
dic = dict.fromkeys(seq)
print(dic) dic2 = dict.fromkeys(seq,10)
print(dic2) '''
{'appale': None, 'banana': None, 'cat': None}
{'appale': 10, 'banana': 10, 'cat': 10}
''' def get(self, k, d=None): # real signature unknown; restored from __doc__
""" D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None. """
pass
#通过key获得value,可以加参数,如果k不在d里面,输出d的值 dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print(dic.get('b')) #['banana', 'bear']
print(dic.get('c','egg')) #cat
print(dic.get('e','egg')) #egg,'e'不在字典里,输出gg def items(self): # real signature unknown; restored from __doc__
""" D.items() -> a set-like object providing a view on D's items """
pass dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print(dic.items()) '''
dict_items([('a', 'appale'), ('b', ['banana', 'bear']), ('c', 'cat'), ('d', 'dog')])
'''
###遍历输出键值对####
for k,v in dic.items():
print(k,v) '''
a appale
b ['banana', 'bear']
c cat
d dog
''' def keys(self): # real signature unknown; restored from __doc__
""" D.keys() -> a set-like object providing a view on D's keys """
pass
#获取所有keys dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print(dic.keys()) '''
dict_keys(['a', 'b', 'c', 'd'])
'''
####遍历keys####
for k in dic.keys():
print(k) '''
a
b
c
d
''' def pop(self, k, d=None): # real signature unknown; restored from __doc__
"""
D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
If key is not found, d is returned if given, otherwise KeyError is raised
"""
pass
#根据key,删除value dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print(dic.pop('a')) #appale
print(dic) #{'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog'}
# print(dic.pop('e')) #KeyError
print(dic.pop('e','egg')) #egg
print(dic) #{'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog'} def popitem(self): # real signature unknown; restored from __doc__
"""
D.popitem() -> (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty.
"""
pass
#删除最后一对键值对 dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print(dic.popitem())
print(dic) '''
('d', 'dog')
{'a': 'appale', 'b': ['banana', 'bear'], 'c': 'cat'}
''' def setdefault(self, k, d=None): # real signature unknown; restored from __doc__
""" D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D """
pass
#向字典追加元素,键为k,值为d dic = {}
dic.setdefault("k1")
print(dic)
dic.setdefault("k2", "111")
print(dic) '''
{'k1': None}
{'k1': None, 'k2': '111'}
''' def update(self, E=None, **F): # known special case of dict.update
"""
D.update([E, ]**F) -> None. Update D from dict/iterable E and F.
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k]
If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v
In either case, this is followed by: for k in F: D[k] = F[k]
"""
pass
#更新字典,如果k存在则替换,如果不存在则增加 dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
dic1 = {'e':'egg','f':'fun'}
dic2 = {'a':'APPALE','p':'pig'}
dic.update(dic1)
print(dic)
dic.update(dic2)
print(dic) '''
{'a': 'appale', 'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog', 'e': 'egg', 'f': 'fun'}
{'a': 'APPALE', 'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog', 'e': 'egg', 'f': 'fun', 'p': 'pig'}
''' def values(self): # real signature unknown; restored from __doc__
""" D.values() -> an object providing a view on D's values """
pass
#获取所有values
dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print(dic.values()) '''
dict_values(['appale', ['banana', 'bear'], 'cat', 'dog'])
'''

字典的遍历:

#字典的遍历

dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
#方法一(推荐该方法,速度快)
print("---方法一---")
for k in dic:
print(k,dic[k]) #方法二
print("---方法二---")
for (k,v) in dic.items():
print(k,v) #方法三
print("---方法三---")
print(dic.items()) '''
---方法一---
a appale
b ['banana', 'bear']
c cat
d dog
---方法二---
a appale
b ['banana', 'bear']
c cat
d dog
---方法三---
dict_items([('a', 'appale'), ('b', ['banana', 'bear']), ('c', 'cat'), ('d', 'dog')])
'''

字典的排序:

  字典和列表的排序可以使用sorted()实现。

dic = {'5':'zhangsan','p':'pig','a':'123','D':'dog'}
print(dic)
print(sorted(dic.items()))
#按照key排序
print(sorted(dic.items(),key=lambda d:d[0]))
#按照value排序
print(sorted(dic.items(),key=lambda d:d[1])) '''
{'5': 'zhangsan', 'p': 'pig', 'a': '123', 'D': 'dog'}
[('5', 'zhangsan'), ('D', 'dog'), ('a', '123'), ('p', 'pig')]
[('5', 'zhangsan'), ('D', 'dog'), ('a', '123'), ('p', 'pig')]
[('a', '123'), ('D', 'dog'), ('p', 'pig'), ('5', 'zhangsan')]
'''

全局字典sys.modules模块

  sys.modules是一个全局字典,这个字典是python启动后就加在在内存中的。每当导入新的模块,sys.modules都将记录这些模块。字典sys.modules对加载的模块起到了缓存作用。当某个模块第一次导入时,字典sys.modules将自动记录该模块。当第2次导入此模块时,python会直接到字典中查找,从而加快了程序运行的速度。
  sys.modules具有字典的所有方法,可以通过该方法了解当前的环境加载了哪些模块。

import sys

print(sys.modules.keys())   #返回sys模块及python自动加载的模块
print(sys.modules.values()) #返回模块的引用
print(sys.modules["os"]) #返回os对应的引用 #实现对导入模块的过滤
import sys
d = sys.modules.copy()
print(d)
import copy,string
print(set(sys.modules) - set(d)) #{'_string', 'string', 'copy'}

4. 集合

  集合是无序的,作用是:去重、关系测试。

集合常用操作:

l = [1,2,3,1,2,3]

#集合去重
l = set(l)
print(l)
print(type(l)) #集合长度
s = set('hello')
print(s) #{'h', 'e', 'o', 'l'}
print(len(s)) #4 #测试包含
print('h' in s)
#测试不包含
print('e' not in s) s1 = set(['a','b','c'])
s2 = set(['a','b','d','e']) #交集
print(s1.intersection(s2))
#{'b', 'a'} #并集
print(s1.union(s2))
#{'b', 'd', 'e', 'c', 'a'} #差集
print(s1.difference(s2)) #{'c'}
print(s2.difference(s1)) #{'d', 'e'} #子集
print(s1.issubset(s2)) #False
print(set(['a','b']).issubset(s1)) #True #父集
print(s1.issuperset(set(['a','b']))) #True #对称差集
print(s1.symmetric_difference(s2)) #{'c', 'e', 'd'}
print(s2.symmetric_difference(s1)) #{'c', 'e', 'd'} #isdisjoint如果没有交集返回真
print(s1.isdisjoint(s2)) #False
print(s1.isdisjoint(set([1,2,3]))) #True

关系测试的另一种写法:

s1 = set(['a','b','c'])
s2 = set(['a','b','d','e']) #并集
print(s1 | s2) #交集
print(s1 & s2) #差集
print(s1 - s2) #对称差集 (在前者中不在后者中)
print(s1 - s2) #{'c'}
print(s2 - s1) #{'e', 'd'}

源代码:

class set(object):
"""
set() -> new empty set object
set(iterable) -> new set object Build an unordered collection of unique elements.
"""
def add(self, *args, **kwargs): # real signature unknown
"""
Add an element to a set. This has no effect if the element is already present.
"""
pass
#新增一个元素 s = set(['a','b','c','d']) s.add('e')
print(s) def clear(self, *args, **kwargs): # real signature unknown
""" Remove all elements from this set. """
pass
#清空集合 s = set(['a','b','c','d']) s.clear()
print(s) def copy(self, *args, **kwargs): # real signature unknown
""" Return a shallow copy of a set. """
pass
#浅拷贝,同列表
s = set(['a','b','c','d']) s1 = s.copy()
print(s1)
print(id(s),id(s1)) def difference(self, *args, **kwargs): # real signature unknown
"""
Return the difference of two or more sets as a new set. (i.e. all elements that are in this set but not the others.)
"""
pass
#差集 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.difference(s2)) #{'c'}
print(s2.difference(s1)) #{'d', 'e'} def difference_update(self, *args, **kwargs): # real signature unknown
""" Remove all elements of another set from this set. """
pass
#将所有元素删除,重新生成一个有差集的集合 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.difference(s2)) #{'c'}
s1.difference_update(s2)
print(s1) #{'c'} def discard(self, *args, **kwargs): # real signature unknown
"""
Remove an element from a set if it is a member. If the element is not a member, do nothing.
"""
pass
#删除指定元素,如果该元素不在集合中也不会报错 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
s1.discard('b')
print(s1)
#{'a', 'c'} def intersection(self, *args, **kwargs): # real signature unknown
"""
Return the intersection of two sets as a new set. (i.e. all elements that are in both sets.)
"""
pass
#交集 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.intersection(s2))
#{'b', 'a'} def intersection_update(self, *args, **kwargs): # real signature unknown
""" Update a set with the intersection of itself and another. """
pass
#更新列表为交集 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.intersection(s2)) #{'a', 'b'}
s1.intersection_update(s2)
print(s1) #{'a', 'b'} def isdisjoint(self, *args, **kwargs): # real signature unknown
""" Return True if two sets have a null intersection. """
pass
#如果没有交集返回真 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.isdisjoint(s2)) #False
print(s1.isdisjoint(set([1,2,3]))) #True def issubset(self, *args, **kwargs): # real signature unknown
""" Report whether another set contains this set. """
pass
#子集 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.issubset(s2)) #False
print(set(['a','b']).issubset(s1)) #True def issuperset(self, *args, **kwargs): # real signature unknown
""" Report whether this set contains another set. """
pass
#父集 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.issuperset(set(['a','b']))) #True def pop(self, *args, **kwargs): # real signature unknown
"""
Remove and return an arbitrary set element.
Raises KeyError if the set is empty.
"""
pass
#随机删除一个元素,如果集合为空则报错 s1 = set(['a','b','c'])
print(s1.pop()) #默认随机删除
print(s1) s2 = set()
print(s2.pop())
#KeyError: 'pop from an empty set' def remove(self, *args, **kwargs): # real signature unknown
"""
Remove an element from a set; it must be a member. If the element is not a member, raise a KeyError.
"""
pass
#删除指定元素,如果元素不在集合中则报错 s1 = set(['a','b','c'])
s1.remove('b')
print(s1) #{'c', 'a'}
s1.remove('d') #KeyError: 'd' def symmetric_difference(self, *args, **kwargs): # real signature unknown
"""
Return the symmetric difference of two sets as a new set. (i.e. all elements that are in exactly one of the sets.)
"""
pass
#对称差集 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.symmetric_difference(s2)) #{'c', 'e', 'd'}
print(s2.symmetric_difference(s1)) #{'c', 'e', 'd'} def symmetric_difference_update(self, *args, **kwargs): # real signature unknown
""" Update a set with the symmetric difference of itself and another. """
pass
#将集合的对称差集重新写到该集合中 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.symmetric_difference(s2)) #{'d', 'e', 'c'}
s1.symmetric_difference_update(s2)
print(s1) #{'c', 'e', 'd'} def union(self, *args, **kwargs): # real signature unknown
"""
Return the union of sets as a new set. (i.e. all elements that are in either set.)
"""
pass
#并集
s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.union(s2))
#{'b', 'd', 'e', 'c', 'a'} def update(self, *args, **kwargs): # real signature unknown
""" Update a set with the union of itself and others. """
pass
#添加多个元素
s1 = set(['a','b','c'])
s1.update('e')
s1.update('e','f',(1,2))
print(s1)
#{1, 2, 'b', 'f', 'e', 'a', 'c'}

 

Python元组、列表、字典、集合的更多相关文章

  1. python中元组/列表/字典/集合

    转自:https://blog.csdn.net/lobo_seeworld/article/details/79404566

  2. python 元组 列表 字典

    type()查看类型 //取整除 **幂 成员运算符: in  x在y序列中,就返回true 反之  not in 身份运算符: is is not 逻辑运算符 and or not 字符编码 问题 ...

  3. Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据

    Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...

  4. python :列表 字典 集合 类 ----局部变量可以改全局变量

    #列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...

  5. python基础一 -------如何在列表字典集合中根据条件筛选数据

    如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) fi ...

  6. python字符串/列表/字典互相转换

    python字符串/列表/字典互相转换 目录 字符串与列表 字符串与字典 列表与字典 字符串与列表 字符串转列表 1.整体转换 str1 = 'hello world' print(str1.spli ...

  7. python元组 列表 (取值、替换、插入、添加、删除)

    1.元组 列表 字典 元组( 元组是不可变的) hello = (1,2,3,4,5) type(hello)

  8. Python列表,元组,字典,集合

    列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能. 列表追加数据的方法:append(),extend(数组),insert(位 ...

  9. Python之旅Day2 元组 字符串 字典 集合

    元组(tuple) 元组其实跟列表差不多,也是存一组数,与列表相比,元组一旦创建,便不能再修改,所以又叫只读列表. 语法: names = ("Wuchunwei","Y ...

  10. Python基础2 列表 字典 集合

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

随机推荐

  1. eclipse gradle 找不到依赖解决办法

    右击工程,选择gradle  在点击Refresh Gradle Project 即可,..不得不说,gradle 在eclipse 下真没maven 好用.....

  2. vs快捷键(SharePoint项目)

    1.ctrl+c,alt+c,shift+ctrl+c: ========== Copying to SharePoint Root =========={ProjectRoot}\pkg\Debug ...

  3. C# web项目添加*.ashx文件后报错处理

    说明:我是菜鸟,博文水平有限,仅作学习过程中的备忘笔记 1.截图信息: ———————————————————————————————————————————————————————————————— ...

  4. SQLServer连接查询之Cross Apply和Outer Apply的区别及用法

    https://blog.csdn.net/wikey_zhang/article/details/77480118 先简单了解下cross apply的语法以及会产生什么样的结果集吧! 示例表: S ...

  5. 1.1 Go安装与项目结构初始化

    软件安装安装包下载地址为:https://golang.org/dl/ 如果打不开可以: https://golang.google.cn/dl/ https://dl.google.com/go/g ...

  6. regular expression, grep (python, linux)

    https://docs.python.org/2/library/re.html re.match(pattern, string, flags=0)  尝试从字符串的起始位置匹配一个模式 re.s ...

  7. 3DSMAX 安装失败

    AUTO Uninstaller 更新下载地址 1.选择3DSMAX 2.选择3DSMAX的版本 3.点击“开始卸载”,然后重新安装就可以了

  8. 怎么查找Linux系统调用

    目前都是这么找: git grep SYSCALL_DEFINE | grep signal系统调用的函数名本来是叫sys_xxx,现在都是用宏SYSCALL_DEFINE(XXX),搞得无法找到sy ...

  9. pat05-图1. List Components (25)

    05-图1. List Components (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue For a ...

  10. Java中的内存泄漏分析说明

    Java语言的一个关键的优势就是它的内存管理机制.你只管创建对象,Java的垃圾回收器帮你分配以及回收内存.然而,实际的情况并没有那么简单,因为内存泄漏在Java应用程序中还是时有发生的. 下面就解释 ...