我对如何加快以下代码有疑问,我有两个单独的嵌套列表,它们相互比较:
#Prerequisites
sudo yum update -y
sudo yum install -y java-1.8.0-openjdk-devel git gcc-c++ make
#Using NODE.JS Version 8 (Version 10 / Actual also works).
curl -sL https://rpm.nodesource.com/setup_8.x | sudo -E bash -
sudo yum install -y nodejs fontconfig
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d /yarn.repo
sudo yum install -y yarn
npm config set strict-ssl false
npm install -g bower
#Maven Enviroment
mkdir /usr/local/maven
cd /usr/local/maven
wget http://apache.rediris.es/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
tar xzvf apache-maven-3.5.4-bin.tar.gz --strip-components=1
sudo ln -s /usr/local/maven/bin/mvn /usr/local/bin/mvn
#Configure Maven to use more resources
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=1024m"
#Proxy Configs
#git config --global http.proxy http://your.company.proxy:port git config --global
#npm config set proxy http://your.company.proxy:8080
#npm config set https-proxy http://your.company.proxy:8080
#nano ~/.bowerrc
#{
#"proxy":"http ://:
#", "https-proxy":"http ://:
#"
#}
#Zeppelin Install
sudo useradd zeppelin
sudo su zeppelin
cd /home/zeppelin
git clone https://github.com/apache/zeppelin.git
cd zeppelin
mvn clean package -Dmaven.test.skip=true
这个想法是比较两个列表的所有可能组合,并将所有选项附加到新列表中。如果有人也可以解释原因,那将是非常不错的,这样我才能更好地理解它!谢谢!
答案 0 :(得分:0)
想法是比较两个列表的所有潜在 组合和所有选项都会添加到新列表中。
对于可变数量的变量,可以使用字典。
要计算两个列表的成对笛卡尔积,可以将itertools.product
与map
一起使用。然后使用字典理解来映射唯一组合:
from itertools import chain, product
products = set(chain.from_iterable(map(product, List1, List2)))
res = {smoothie: f'Smoothie{idx}' for idx, smoothie in enumerate(products, 1)}
结果:
{('apple', 'banana'): 'Smoothie7',
('apple', 'coconut'): 'Smoothie3',
('apple', 'grape'): 'Smoothie13',
('apple', 'kiwi'): 'Smoothie2',
('apple', 'orange'): 'Smoothie4',
('banana', 'apple'): 'Smoothie9',
('banana', 'coconut'): 'Smoothie8',
('banana', 'kiwi'): 'Smoothie11',
('banana', 'orange'): 'Smoothie17',
('blueberry', 'apple'): 'Smoothie16',
('blueberry', 'kiwi'): 'Smoothie15',
('coconut', 'blueberry'): 'Smoothie10',
('grape', 'blueberry'): 'Smoothie12',
('kiwi', 'apple'): 'Smoothie21',
('kiwi', 'banana'): 'Smoothie1',
('kiwi', 'blueberry'): 'Smoothie23',
('kiwi', 'coconut'): 'Smoothie22',
('kiwi', 'grape'): 'Smoothie20',
('kiwi', 'orange'): 'Smoothie19',
('orange', 'apple'): 'Smoothie6',
('orange', 'banana'): 'Smoothie18',
('orange', 'blueberry'): 'Smoothie14',
('orange', 'coconut'): 'Smoothie5'}
另一方面,如果您正在整个子列表中查找所有组合,则可以展平输入列表并直接使用product
。
答案 1 :(得分:0)
假设您想要水果子列表的所有组合的冰沙:
Navigation: Collections -> Customer Accounts [Aging butto]