我从csv文件中获得了全名列表,但我只想将下一段代码应用于该列表中的名字。该列表如下所示:
['michelle rodriguez', 'dexter king', 'gurukavari']
然后是几千个名字。正如您所看到的,一些名称不包含姓氏,有些名称也包含姓氏。如何创建仅包含此列表中名字的新列表?
答案 0 :(得分:2)
使用list-comprehension:
class Holder {
private volatile int value;
public Holder(int value, HolderContainer container) {
container.holder = this; // publication this object when it is not initilized properly
try {
Thread.sleep(10);
} catch (Exception e) {
}
this.value = value; // set value
}
public int getValue() {
return value;
}
}
class HolderContainer {
public Holder holder;
public Holder getHolder() {
if (holder == null) {
holder = new Holder(42, this);
}
return holder;
}
}
public class Tests {
public static void main(String[] args) {
for (int loop = 0; loop < 1000; loop++) {
HolderContainer holderContainer = new HolderContainer();
new Thread(() -> holderContainer.getHolder()).start();
new Thread(() -> {
Holder holder = holderContainer.getHolder();
int value1 = holder.getValue(); // might get default value
try {
Thread.sleep(10);
} catch (Exception e) {
}
int value2 = holder.getValue(); // might get custom value
if (value1 != value2) {
System.out.println(value1 + "--->" + value2);
}
}).start();
}
}
}
答案 1 :(得分:0)
建议使用Map
函数,并按空格字符拆分每个可迭代项目,并仅返回第一个拆分项目。
答案 2 :(得分:0)
您可以使用以下地图功能: -
a = ['michelle rodriguez', 'dexter king', 'gurukavari']
b= map((lambda x: x.split()[0]), a) # ['michelle', 'dexter', 'gurukavari']
答案 3 :(得分:0)
使用拆分功能分隔名字和名字。名称列表中的姓氏,并遍历列表直到最后一个元素。
代码:
names = ['michelle rodriguez', 'dexter king', 'gurukavari']
firstname = []
for i in range(0,len(names)):
firstname.append(names[i].split()[0])
print(firstname)
输出
['michelle', 'dexter', 'gurukavari']
答案 4 :(得分:0)
name = "Saurabh Chandra Patel"
first_name = name.rsplit(' ', 1)[0]
last_name = name.rsplit(' ', 1)[1]
如果名称=“ Saurabh Patel”