从Python

时间:2018-06-02 11:33:02

标签: python

我从csv文件中获得了全名列表,但我只想将下一段代码应用于该列表中的名字。该列表如下所示:

['michelle rodriguez', 'dexter king', 'gurukavari']  

然后是几千个名字。正如您所看到的,一些名称不包含姓氏,有些名称也包含姓氏。如何创建仅包含此列表中名字的新列表?

5 个答案:

答案 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]
  1. first_name = Saurabh Chandra
  2. last_name = Patel

如果名称=“ Saurabh Patel”

  1. first_name = Saurabh
  2. last_name = Patel
相关问题