上善若水

水善利万物而不争
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

python | 浅学 | 8 数组 推导式

Posted on 2022-07-10 14:58  董锡振  阅读(67)  评论(0编辑  收藏  举报
a, b, c, d   = 20, 5.5, True, 4+3j
print(type(a), type(b), type(c), type(d))
a = 111
print(isinstance(a, int))

class A:
  pass
class B(A):
  pass
print(isinstance(A(), A))
print(type(A()) == A  )
print(isinstance(B(), A) )
print(type(B()) == A )      #isinstance()会认为子类是一种父类类型。 type()不会认为子类是一种父类类型。

#1.列表推导式  [表达式 for 变量 in 列表]  或者 [表达式 for 变量 in 列表 if 条件]
names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
new_names = [name.upper()for name in names if len(name)>3]
print(new_names)  #['ALICE', 'JERRY', 'WENDY', 'SMITH']

#2.字典推导式 { key_expr: value_expr for value in collection }  或者 { key_expr: value_expr for value in collection if condition }
listdemo = ['Google','Runoob', 'Tao' ,'bao']
new_listdemo={it:len(it) for it in listdemo} # 将列表中各字符串值为键,各字符串的长度为值,组成键值对
print(new_listdemo)   #{'Google': 6, 'Runoob': 6, 'Tao': 3, 'bao': 3}

#3.集合推导式 { expression for item in Sequence }  { expression for item in Sequence if conditional }
setnew = {i**2 for i in (1,2,3,4) if i<4}  #计算数字 1,2,3 的平方数
print(setnew)   #{1, 4, 9}

#4.元组推导式 (expression for item in Sequence )  (expression for item in Sequence if conditional )
a = (x for x in range(1,10))
print(a)
print(tuple(a))      # 使用 tuple() 函数,可以直接将生成器对象转换成元组

a = {x for x in 'abxacadaba' if x not in 'abc'}
print(a)             #x d
a.add('dong')
print(a)
a.pop()              #也可以设置随机删除集合中的一个元素
print(a)
a.discard('dong1')   #移除集合中的元素,且如果元素不存在,不会发生错误
#a.remove('dong1')    #从集合中移除,如果元素不存在,则会发生错误

list=[1,2,3,4]
it = iter(list)    # 创建迭代器对象
print (next(it))
for x in it:
    print (x, end=" ")


def hello():
  print("Hello World!")
hello()


def area(width, height):
  return width * height
def print_welcome(name):
  print("Welcome", name)
print_welcome("Runoob")
w = 4
h = 5
print("width =", w, " height =", h, " area =", area(w, h))

vec = [2, 4, 6]
vec1 =[3*x for x in vec]        #元素*3
print(vec1)
vec2 =[[x, x**2] for x in vec]  #元素平方
print(vec2)
matrix = [[1, 2, 3, 4], [5, 6, 7, 8],[9, 10, 11, 12]]
matrix1 = [[row[i] for row in matrix] for i in range(4)]
print(matrix1)


# 打开一个文件
f = open("D:/python/tmp/foo.txt", "w")
f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" )
# 关闭打开的文件
f.close()

# 打开一个文件
f = open("D:/python/tmp/foo.txt", "r")
#str = f.readlines()
#print(str)

for line in f:
    print(line, end='')
# 关闭打开的文件
f.close()


class MyClass:
  """一个简单的类实例"""
  i = 12345

  def f(self):
    return 'hello world'


# 实例化类
x = MyClass()

# 访问类的属性和方法
print("MyClass 类的属性 i 为:", x.i)
print("MyClass 类的方法 f 输出为:", x.f())