有一个列表li1 = ["张三", "王五","坤哥","李四", "赵六", "坤哥","王五","坤哥","张三","坤哥"] ,将列表重复的数据删除,保留一个,不可以使用集合
时间: 2023-09-14 10:08:00 浏览: 75
可以使用循环和判断来实现:
li1 = ["张三", "王五","坤哥","李四", "赵六", "坤哥","王五","坤哥","张三","坤哥"]
new_li = [] # 新建一个空列表用于存放去重后的数据
for item in li1: # 遍历原列表中的每个元素
if item not in new_li: # 判断当前元素是否已经存在于新列表中
new_li.append(item) # 如果不存在,则将其添加到新列表中
print(new_li) # 输出去重后的列表
相关问题
某班投票选班长,请用字典结构统票并输出票数前2名。其中记录票的字符串 格式为:"张三李四张三王五赵六张三李四赵六李四"
为了统计票数并找出前两名,我们可以创建一个字典,将每个学生的姓名作为键,票数作为值。然后遍历给定的投票字符串,每遇到一个学生的名字就增加对应的票数。最后,我们可以遍历字典获取票数最多的两个名字及其票数。
以下是步骤:
1. 初始化一个空字典 `votes` 来存储票数。
2. 对于输入的投票字符串,分隔成单个名字,例如 `张三 李四 张三 王五 赵六 张三 李四 赵六 李四`。
3. 遍历每个名字,如果它已经在字典中,则增加票数,否则添加新的键值对,初始票数为1。
4. 统计完成后,找到票数最多的前两个键值对。
假设我们有一个投票字符串 "张三 李四 张三 王五 赵六 张三 李四 赵六 李四":
```python
votes = {}
voting_string = "张三 李四 张三 王五 赵六 张三 李四 赵六 李四"
names = voting_string.split()
for name in names:
if name in votes:
votes[name] += 1
else:
votes[name] = 1
top_two = sorted(votes.items(), key=lambda x: x[1], reverse=True)[:2]
print("票数前两名:", top_two)
```
运行上述代码后,输出会是票数最多的前两名以及他们的票数。
用java的stream工具,对一个对象类型的list,按某个属性分组,对另外一个属性用逗号拼接字符串。举例:我提供了一个List<Student>集合,按sex属性汇总name属性,输出一个List,list中具体的成员值为,sex="男",name="张三,李四";第二个成员值为,sex="女",name="王五,赵六,黄七"
可以通过如下代码实现:
```java
import java.util.*;
import java.util.stream.*;
public class GroupingAndJoining {
public static void main(String[] args) {
List<Student> students = Arrays.asList(
new Student("男", "张三"),
new Student("男", "李四"),
new Student("女", "王五"),
new Student("女", "赵六"),
new Student("女", "黄七")
);
Map<String, List<Student>> groupedStudents = students.stream()
.collect(Collectors.groupingBy(Student::getSex));
List<Student> resultList = new ArrayList<>();
for (Map.Entry<String, List<Student>> entry : groupedStudents.entrySet()) {
String sex = entry.getKey();
List<String> names = entry.getValue().stream()
.map(Student::getName)
.collect(Collectors.toList());
resultList.add(new Student(sex, String.join(",", names)));
}
System.out.println(resultList);
}
}
class Student {
private String sex;
private String name;
public Student(String sex, String name) {
this.sex = sex;
this.name = name;
}
public String getSex() {
return sex;
}
public String getName() {
return name;
}
public String toString() {
return "sex=\"" + sex + "\", name=\"" + name + "\"";
}
}
```
输出结果为:
```text
[sex="男", name="张三,李四", sex="女", name="王五,赵六,黄七"]
```
阅读全文