person=[ [1.8, 1.9], [1.8, 1.7], [1.9, 1.8], [1.7, 1.9], [1.7, 1.7], [1.6, 1.7] ] 用python取出第一列
时间: 2024-06-09 21:08:20 浏览: 118
可以使用列表推导式来取出二维列表中的第一列:
```
person=[[1.8, 1.9], [1.8, 1.7], [1.9, 1.8], [1.7, 1.9], [1.7, 1.7], [1.6, 1.7]]
col1 = [p[0] for p in person]
print(col1) # [1.8, 1.8, 1.9, 1.7, 1.7, 1.6]
```
这里使用了列表推导式和循环语句来遍历二维列表中的每个元素,并通过索引取出第一个元素,将其添加到新的列表中。最后输出新的列表即可。
相关问题
Person person = new Person();转为c++
在 C++ 中,创建类实例的语法与 Java 不同。您需要使用关键字 `new` 来动态分配内存并返回指向类实例的指针。因此,将 Java 代码 `Person person = new Person();` 转换为 C++ 代码如下:
```
Person* person = new Person();
```
需要注意的是,在 C++ 中,您需要手动管理内存,因此在使用完成后需要使用 `delete` 关键字释放内存。例如:
```
delete person;
```
jdk1.8 list分组
你可以使用Java 8中的Stream API来对List进行分组,以下是示例代码:
假设我们有一个Person类,其中包含姓名和年龄属性:
```
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
现在我们有一个Person对象的List,我们要按照年龄分组:
```
List<Person> persons = new ArrayList<>();
persons.add(new Person("Alice", 21));
persons.add(new Person("Bob", 22));
persons.add(new Person("Charlie", 21));
persons.add(new Person("Dave", 23));
persons.add(new Person("Eve", 22));
```
我们可以使用以下代码来按年龄分组:
```
Map<Integer, List<Person>> personsByAge = persons.stream()
.collect(Collectors.groupingBy(Person::getAge));
```
这个代码将会返回一个Map,其中键是年龄,值是该年龄的Person对象列表。你可以使用Map的get方法来获取特定年龄的人的列表。
如果你想按名称首字母分组,你可以使用以下代码:
```
Map<Character, List<Person>> personsByName = persons.stream()
.collect(Collectors.groupingBy(p -> p.getName().charAt(0)));
```
这个代码将会返回一个Map,其中键是名称的首字母,值是该首字母开头的Person对象列表。