来自python的【列表生成式[],if else 的三元表达式】

本文介绍了Python编程中的列表生成式,它允许高效地创建列表,支持循环与条件判断。同时,文章还讲解了如何使用if-else三元表达式进行条件判断并返回不同结果。列表生成式可用于复杂列表的构造,而set生成式则用于创建集合,注意集合是无序的。此外,文中也提到了for循环中处理多个变量的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表生成式

简单的说,列表生成式就是快速,有B格的生成一个列表,生成列表之后,可以进行相应操作,转换为别的数据形式。

  • 列表生成式 是写在[]中的式子,结果会输出一个列表。
  • 将要生成的数据形式的表达式放在前面,后面跟上for循环,如果有其他条件进行筛选,还可以跟上if else 进行操作。表达式可以是任何数据类型,最后都会转为列表类型。
  • 能够进行两层循环xxx for xx in xx for xx in xx,嵌套循环。
  • 注意for中是可以有多个变量的,在dict字典类型遍历的时候尤其明显。
  • 注意只能是一个表达式,不能是多个变量,除非组成一个表达式
  • 实施步骤就是使用循环变量的每一个变量拿去实施前方的表达式,以此生成新的列表
  • 有if 的时候 [最终表达式 - (范围选择 - 范围过滤)]
  • 当同时有 if 和 else 时,列表生成式构造为 [最终表达式 - 条件分支判断 - 范围选择]
# 列表生成式  用来创建list的生成式
# 生成 【1,2,3,4,5,6,7,。。。10】 可以用 range(1,11)
print(list(range(1,11))) #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
l = []
for i in range(1,11):
    l.append(i*i)
print(l) #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

print([x * x for x in range(1,11)]) #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

# 使用[],并把奥生成的内容 放在前面  然后使用 for进行循环
print([y for y in range(1,22)]) #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]


# for 后面还可以加上 if 判断
print([x for x in range(1,10) if x%2 == 0]) # [2, 4, 6, 8]

l = []
for x in range(1,10):
    if x %2 == 0:
        l.append(x)

print(l) # [2, 4, 6, 8] 类比如下


# 还可以使用两层循环 嵌套循环
print([m+n for m in 'ABC' for n in 'xyz'] ) #['Ax', 'Ay', 'Az', 'Bx', 'By', 'Bz', 'Cx', 'Cy', 'Cz']
a = [m+n for m in 'ABC' for n in 'xyz']
# print(m)
# print(n) 内部定义的变量 相当于是不存在的 循环变量
print(a) #['Ax', 'Ay', 'Az', 'Bx', 'By', 'Bz', 'Cx', 'Cy', 'Cz']

print([(m,n) for m in 'ABC' for n in 'xyx']) #[('A', 'x'), ('A', 'y'), ('A', 'x'), ('B', 'x'), ('B', 'y'), ('B', 'x'), ('C', 'x'), ('C', 'y'), ('C', 'x')]
print([set(m) for m in 'abc']) # [{'a'}, {'b'}, {'c'}]
# 那具体什么表达式就算看自己了


 # for 循环可以使用多个变量
d = {'x': 'A', 'y': 'B', 'z': 'C' }
for k,v in d.items():
    print(k,v)


a  = [k + '=' + 'v ' for  k,v in d.items()]
print(a) #['x=v ', 'y=v ', 'z=v ']
L = ['Hello', 'World', 'IBM', 'Apple']
l = [s.lower() for s in L]
print(l) #['hello', 'world', 'ibm', 'apple']
print(type(l))

#  q其实什么类型都可以用, 只不过最后返回的是list的样式


# 列表生成式 使用 if else
y = [0 if x%2 == 0 else x  for x in range(1,10)] 
#  if 成立使用 前面的表达式,不成立使用x`在这里插入代码片`

y = [ 0 for x  in range[1,10] if x %2 ==0 else x] #                                                 ^
#SyntaxError: invalid syntax  报错 
# else 必须写在前面

set生成式/字典

与 上述列表生成式一样,只要括号变为{}即可,注意 set集合是无序排列; 元组不行哦!

# 创建集合
set4 = {num for num in range(1,10) if(num %2 ==0)}
print(set4,type(set4)) #{8, 2, 4, 6} <class 'set'>  输出也是无序列的

t= (num for num in range(1,10) if(num %2 ==0))
print(t,type(t)) #<generator object <genexpr> at 0x7fb12a2f9fc0> <class 'generator'>
items3 = {num: num ** 2 for num in range(1, 10)}
print(items3)#{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

if else 三元表达式

输出一 if 表达式一 else 表达式二 如果表达式一为True,那么就输出 输出一的内容,如果为False,就输出表达式二的内容。

# if else 三元
def gcd (x,y):
    #(x,y) = (y,x) # 赋值 求出最大值 判断两个数值的大小
    (x,y)  =  (y,x) if x>y else (x,y)
    # 就算x >y 的时候 (x,y) = (y,x) 否则惠对调
    # y是最大的值  因该遍历最小的值
    for i  in range(x,0,-1):
        if(x % i == 0 and y % i ==0):
            return i
def lcm(x,y):
    return x*y//gcd(x,y)

print(True if 10%2 ==0 else False ) #True
print('This is True' if 10%2 ==0 else False ) #This is True
智能网联汽车的安全员高级考试涉及多个方面的专业知识,包括但不限于自动驾驶技术原理、车辆传感器融合、网络安全防护以及法律法规等内容。以下是针对该主题的一些核心知识点解析: ### 关于智能网联车安全员高级考试的核心内容 #### 1. 自动驾驶分级标准 国际自动机工程师学会(SAE International)定义了六个级别的自动驾驶等级,从L0到L5[^1]。其中,L3及以上级别需要安全员具备更高的应急处理能力。 #### 2. 车辆感知系统的组成与功能 智能网联车通常配备多种传感器,如激光雷达、毫米波雷达、摄像头超声波传感器等。这些设备协同工作以实现环境感知、障碍物检测等功能[^2]。 #### 3. 数据通信与网络安全 智能网联车依赖V2X(Vehicle-to-Everything)技术进行数据交换,在此过程中需防范潜在的网络攻击风险,例如中间人攻击或恶意软件入侵[^3]。 #### 4. 法律法规要求 不同国家地区对于无人驾驶测试及运营有着严格的规定,考生应熟悉当地交通法典中有关自动化驾驶部分的具体条款[^4]。 ```python # 示例代码:模拟简单决策逻辑 def decide_action(sensor_data): if sensor_data['obstacle'] and not sensor_data['emergency']: return 'slow_down' elif sensor_data['pedestrian_crossing']: return 'stop_and_yield' else: return 'continue_driving' example_input = {'obstacle': True, 'emergency': False, 'pedestrian_crossing': False} action = decide_action(example_input) print(f"Action to take: {action}") ``` 需要注意的是,“橙点同学”作为特定平台上的学习资源名称,并不提供官方认证的标准答案集;建议通过正规渠道获取教材并参加培训课程来准备此类资格认证考试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值