x=[[]]*3和x=[[]for i in range(3)]的区别
时间: 2023-09-08 21:14:54 浏览: 33
这两个语句的主要区别在于它们创建的二维列表的默认值不同。
- `x=[[]]*3` 创建的是一个包含 3 个相同空列表的列表。这意味着当您更改一个列表中的值时,所有三个列表中的值都会更改。
```python
>>> x=[[]]*3
>>> x
[[], [], []]
>>> x[0].append(1)
>>> x
[[1], [1], [1]]
```
- `x=[[] for i in range(3)]` 创建的是包含 3 个不同空列表的列表。这意味着更改一个列表中的值时,只有该列表中的值会更改。
```python
>>> x=[[] for i in range(3)]
>>> x
[[], [], []]
>>> x[0].append(1)
>>> x
[[1], [], []]
```
因此,如果您需要创建一个包含多个不同列表的列表,请使用第二种语法。如果您需要创建包含多个相同列表的列表,则可以使用第一种语法。
相关问题
x=(3 for i in range(5))什么意思
这是一个生成器表达式,它会生成一个包含5个元素的生成器对象。每个元素都是数字3。可以通过调用`next()`方法迭代生成器来获取每个元素。例如:
```
x = (3 for i in range(5))
print(next(x)) # 输出 3
print(next(x)) # 输出 3
print(next(x)) # 输出 3
print(next(x)) # 输出 3
print(next(x)) # 输出 3
```
x = (3 for i in range(5))是什么意思
这个语句创建了一个生成器对象x,它将生成值3,一共生成5次。可以通过调用next(x)方法逐个获取生成器的值,也可以使用for循环来迭代生成器对象x,例如:
```python
x = (3 for i in range(5))
for val in x:
print(val)
```
输出结果为:
```
3
3
3
3
3
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)